Как именно сделать 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;