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

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

6
задан STW 7 August 2013 в 13:56
поделиться

2 ответа

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

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

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

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

30
ответ дан 8 December 2019 в 02:21
поделиться

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

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

UIImage* image = [UIImage imageNamed:@"Your Image.png"];
CGImageRef imageRef = image.CGImage;
9
ответ дан 8 December 2019 в 02:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: