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