How exactly to make a CGImageRef from an image on disk

浪尽此生 提交于 2019-11-27 12:35:11

问题


I've looked around everywhere to no avail. I'm doing some image loading in a thread and since UIKit is not thread safe I'm going to have to store the images as CGImageRefs but I can't figure out how to do this. I haven't played with any of the Quartz stuff before so it's confusing me. Basically I just need to load a JPG from the disk into a CGImageRef. Also for bonus points, is there anyway to load a GIF into a CGImageRef?


回答1:


gcamp is more or less correct, you are pretty safe to use this on a background thread, but to answer your question, I believe the following would work.

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

There is also a function for jpg images, CGImageCreateWithJPEGDataProvider.

(be sure to release the data provider and image when done)




回答2:


I think the simplest way is to use UIKit and use the CGImage propriety of UIImage.

Something like that :

UIImage* image = [UIImage imageNamed:@"Your Image.png"];
CGImageRef imageRef = image.CGImage;


来源:https://stackoverflow.com/questions/3550201/how-exactly-to-make-a-cgimageref-from-an-image-on-disk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!