我有一个大图像,它太大而无法加载到内存中,但我只对该大图像中的一组像素感兴趣。是否可以仅将这个像素子集解码到内存中?我知道在Android中,API中有一个类可以做到这一点,叫做BitmapRegionDecoder 就是这样
我找到了 CGDataProviderCreateSequential 但它需要构造函数中的原始像素......
现在我正在做这样的事情:
UIImage* srcImage = ...;
CFDataRef cgImgDataRef = CGDataProviderCopyData(CGImageGetDataProvider(srcImage.CGImage));//After this call, all pixels are decoded into memory and the app crashes
char* imageData = (char*)CFDataGetBytePtr(cgImgDataRef);