gpt4 book ai didi

objective-c - 来自NSData的CGImageRef为空,但UIImage不是吗?

转载 作者:行者123 更新时间:2023-12-01 18:26:32 24 4
gpt4 key购买 nike

我正在尝试将一些图像加载移至后台。目前,我正在后台加载UIImages,但从我的阅读中得知,这不是建议的执行方法,相反,我应该在后台加载CGImageRef,然后从主线程中加载UIImage。

问题是,当我尝试创建CGImageRef时,其返回为null。样例代码:

NSData * imageData = [NSData dataWithContentsOfFile: coverPath];
if(nil != imageData)
{
UIImage * uiImage = [UIImage imageWithData: imageData];

CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef) imageData);
CGImageRef imageRef = CGImageCreateWithPNGDataProvider(provider, NULL, true, kCGRenderingIntentDefault);

NSLog(@"Test: %p, %p", imageRef, uiImage);
CGDataProviderRelease(provider);
}

哪个注销 Test: 0x0, 0x1c566bb0。表示imageRef为null,但uiImage不是。有什么想法我在这里做错了吗?似乎这应该很简单?

最佳答案

CGImageCreateWithPNGDataProvider()

如果提供的数据不是PNG格式(例如JPEG或TIFF),则返回 nil
[UIImage imageWithData: imageData]

返回所有支持的图像文件格式(PNG,JPEG,TIFF等)的图像

这就解释了为什么第一个功能失败而第二个成功的原因。

关于objective-c - 来自NSData的CGImageRef为空,但UIImage不是吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13237090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com