Как именно сделать CGImageRef из образа на диске

Я везде огляделся безрезультатно. Я делаю некоторую загрузку изображений в потоке, и поскольку UIKit не является потокобезопасным, мне придется хранить изображения как CGImageRefs, но я не могу понять, как это сделать. Я не играл ни с одним из Кварцевых вещей прежде, поэтому это сбивает меня с толку. В основном мне просто нужно загрузить JPG с диска в CGImageRef. Также для бонусных баллов есть ли способ загрузить GIF в CGImageRef?

2 ответа

Решение

gcamp более или менее корректен, вы можете использовать его в фоновом потоке, но, отвечая на ваш вопрос, я думаю, что сработает следующее.

CGDataProviderRef dataProvider = CGDataProviderCreateWithFilename("file");
CGImageRef image = CGImageCreateWithPNGDataProvider(dataProvider, NULL, NO, kCGRenderingIntentDefault);

Существует также функция для изображений JPG, CGImageCreateWithJPEGDataProvider,

(не забудьте освободить поставщика данных и изображения, когда закончите)

Я думаю, что самый простой способ - это использовать UIKit и использовать CGImage уместность UIImage,

Что-то вроде того:

UIImage* image = [UIImage imageNamed:@"Your Image.png"];
CGImageRef imageRef = image.CGImage;
Другие вопросы по тегам