加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c-ios解码图像的一部分

发布时间:2020-12-16 05:27:36 所属栏目:百科 来源:网络整理
导读:我有一个大的图像太大,无法加载到内存中,但我只对这个大图像中的一组子像素感兴趣.是否可以将这个子像素解码为内存?我知道在 Android中有一个类在API中做这个所谓的BitmapRegionDecoder这样的东西 我发现CGDataProviderCreateSequential,但它需要构造函数中
我有一个大的图像太大,无法加载到内存中,但我只对这个大图像中的一组子像素感兴趣.是否可以将这个子像素解码为内存?我知道在 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);

解决方法

唯一可能的办法是,如果您创建一个CGImageSourceCreateWithData()(或任何URL),然后使用CGImageCreateWithJPEGDataProvider或CGImageCreateWithPNGDataProvider创建一个CGImageRef.使用这个CGImageRef,您可以尝试使用CGImageCreateWithImageInRect()并拉出大图像的一部分.

如果你想要做的是平铺图像,请澄清你的问题,因为我会有更多的信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读