我已经四处查找,但没有结果。我正在一个线程中进行一些图像加载,由于UIKit不是线程安全的,因此我将不得不将图像存储为CGImageRefs,但我无法弄清楚如何做到这一点。我以前没有使用过任何Quartz相关的东西,所以它让我感到困惑。基本上,我只需要从磁盘中加载一个JPG文件到CGImageRef中。另外,如果有办法将GIF加载到CGImageRef中,那就更好了。
我已经四处查找,但没有结果。我正在一个线程中进行一些图像加载,由于UIKit不是线程安全的,因此我将不得不将图像存储为CGImageRefs,但我无法弄清楚如何做到这一点。我以前没有使用过任何Quartz相关的东西,所以它让我感到困惑。基本上,我只需要从磁盘中加载一个JPG文件到CGImageRef中。另外,如果有办法将GIF加载到CGImageRef中,那就更好了。
gcamp的说法基本正确,你可以放心地在后台线程上使用它,但是为了回答你的问题,我认为以下代码会起作用。
CGDataProviderRef dataProvider = CGDataProviderCreateWithFilename("file");
CGImageRef image = CGImageCreateWithPNGDataProvider(dataProvider, NULL, NO, kCGRenderingIntentDefault);
还有一个用于jpg图片的函数,CGImageCreateWithJPEGDataProvider
。
(确保在完成操作后释放数据提供程序和图像)
UIImage* image = [UIImage imageNamed:@"Your Image.png"];
CGImageRef imageRef = image.CGImage;