CGImageRef を JPEG2000 として保存する方法を見つけようとしています。
現時点では、散らばったような画像出力が得られます。
kUTTypeJPEG2000 を除く他のすべての形式で機能する次のコードがあります。kUTTypeGIF または kUTTypePNG として保存すると問題なく動作します。興味深いことに、アルファチャンネルなしで 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);
}