如何从文件中获取CGImageRef?

Ovi*_*ler 11 iphone objective-c

所以我知道你可以CGImage使用UIImage从文件中获取...

UIImage *img = [UIImage imageNamed:@"name.bmp"];
[img CGImage];
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法让你CGImageRef不使用UIImage

(我在一个无法访问UIKit的静态库中尝试这个)我可以在必要时使用其他框架,而不是UIKit.会CIImage工作吗?还是NSBitmapImageRep

Tom*_*ing 21

你可以从NSData获得它:

CGDataProviderRef imgDataProvider = CGDataProviderCreateWithCFData((CFDataRef)[NSData dataWithContentsOfFile:@""]);
CGImageRef image = CGImageCreateWithPNGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault); // Or JPEGDataProvider
Run Code Online (Sandbox Code Playgroud)

您必须确定数据是JPEG或PNG才能使其正常工作.

  • 这真的帮了我,但你应该知道,你必须用下面的 `CGImageRelease(image);` 释放保存 `CGImageRef` 的内存。 (2认同)