我试图弄清楚如何将 CGImageRef 保存为 JPEG2000。
目前我得到分散的图像输出。
我有以下代码适用于除 kUTTypeJPEG2000 之外的所有其他格式。保存为 kUTTypeGIF 或 kUTTypePNG 可以正常工作。有趣的是,保存为不带 alpha 通道的 kUTTypeJPEG2000 也可以。
如何让图像正确输出?
- (void)saveImage:(CGImageRef)image path:(NSString *)path
{
// Set the image compression quality
CFMutableDictionaryRef properties = CFDictionaryCreateMutable(nil,
0,
&kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
// Save and finalize
CFURLRef url = CFBridgingRetain([[NSURL alloc] initFileURLWithPath:path]);
CGImageDestinationRef destination = CGImageDestinationCreateWithURL(url, kUTTypeJPEG2000, 1, NULL);
CGImageDestinationAddImage(destination, image, properties);
CGImageDestinationFinalize(destination);
CFRelease(url);
}