objective-c从调整大小的图像中获取像素值

objective-c从调整大小的图像中获取像素值,objective-c,uiimage,resize,cgimage,cfdata,Objective C,Uiimage,Resize,Cgimage,Cfdata,我在从调整大小的UIimage获取值时遇到问题。 初始图像大小为500x500。 我使用的方法只有在图像大小调整(甚至是大小相等)时才会失败 我正在使用ImageContext和drawInRect创建新的调整大小的图像 我在另一种方法中使用CFDataRef和CFDataGetBytePtr来获得x,y的像素值 CFDataRef为所有默认图像返回@1000000。图像调整大小后,此值将更改为@90240000。与调整图像大小后为空的CFDataGetBytePtr相同 现在我怀疑这与调整大小

我在从调整大小的UIimage获取值时遇到问题。 初始图像大小为500x500。 我使用的方法只有在图像大小调整(甚至是大小相等)时才会失败

  • 我正在使用ImageContext和drawInRect创建新的调整大小的图像

  • 我在另一种方法中使用CFDataRef和CFDataGetBytePtr来获得x,y的像素值

  • CFDataRef为所有默认图像返回@1000000。图像调整大小后,此值将更改为@90240000。与调整图像大小后为空的CFDataGetBytePtr相同

    现在我怀疑这与调整大小的图像实际上是一个新图像这一事实有关,但我不能确定,所以我真的很感激任何关于如何解决这个问题的解释或建议


    感谢您抽出时间来检查我的问题。

    我有一个类似的问题,那就是在调整UIImage的大小后,我无法使用CFDataGetBytePtr获得正确的值。我目前还不知道原因,但另一种获取UIImage价值的方法是可行的。代码如下:

    size_t width = CGImageGetWidth(img);
    size_t height = CGImageGetHeight(img);
    
    
    size_t rowByteSize = width *  4;
    unsigned char * data = new unsigned char[height * rowByteSize];
    
    CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
    CGContextRef context = CGBitmapContextCreate(data, width, height, 8, rowByteSize,
                                                 colorSpaceRef,
                                                 kCGImageAlphaPremultipliedLast);
    CGContextSetBlendMode(context, kCGBlendModeCopy);
    CGContextDrawImage(context, CGRectMake(0.0, 0.0, width, height), img);
    CGContextRelease(context);
    
    CGColorSpaceRelease(colorSpaceRef);
    

    你能把代码贴在你调整图像大小的地方吗?它可能会给我们一些提示:)当然:)这里是://resize images+(UIImage*)imageWithImage:(UIImage*)imagescaledtosize:(CGSize)newSize{//UIGraphicsBeginImageContext(newSize);UIGraphicsBeginImageContextWithOptions(newSize,NO,0.0);[image-drawinrectmake(0,0,newSize.width,newSize.height)];UIImage*newImage=UIGraphicsGetImageFromCurrentImageContext();UIGraphicsSendImageContext();return newImage;}您可以尝试此类别,看看它是否有所改进。来源:。还有,你在主线程上做这个吗?谢谢。我读过这篇文章,其中描述的任何方法或技术都没有帮助我理解问题的本质。由于我的应用程序处于测试阶段,我只有几个方法,它们仍然位于一个类中。此时不会初始化其他线程。