iOSフォトライブラリからCMYK画像を読み込みたいです。
例CMYK ファイルのサンプル このファイルを Safari で開き、長押ししてカメラロールに保存します。
次に、ALAsset ライブラリを使用して UIImageView に表示します
[library assetForURL:asset resultBlock:^(ALAsset *asset) {
UIImage* image = [UIImage imageWithCGImage:asset.thumbnail];
imageView.image = image;
} failureBlock:^(NSError *error) {
imageView.image = nil;
}] ;
ほとんどすべての画像が黒くなり、色情報が失われます。私も試してみました
asset.defaultRepresentation.fullScreenImage;
asset.defaultRepresentation.fullResolutionImage;
そして、すべてが黒いイメージになりました。
また、このようなバイトから読み取ろうとしました。
ALAssetRepresentation* representation = [asset defaultRepresentation];
uint8_t *buffer = (Byte*)malloc(representation.size);
[representation getBytes:buffer fromOffset: 0.0 length:representation.size error:nil];
NSData *data = [[NSData alloc] initWithBytesNoCopy:buffer length:representation.size freeWhenDone:YES];
UIImage* image = [UIImage imageWithData:data];
これはフル解像度の画像も表示しますが、黒だけも表示します...
興味深いことに、Web ディレクトリから UIImage にデータを取得すると、機能します。
self.imageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.plaveb.com/blog/Upload/FCKeditor/image/cmyk-encoded-image.jpg"]]];
これにより、カラフルなイメージが得られました。私の推測では、CMYK 画像をカメラ ロールに保存すると、色情報が失われ、カラフルな画像を取得できなくなります。
質問は「カメラロールのCMYK画像からカラフルな画像を取得することは可能ですか?」
iOS 6.0.1 および 5.0、5.1 でテストしました。6.0.1 では、サムネイルまたはフルスクリーン イメージのいずれかで、カラフルなイメージを表示できません。奇妙なことはiOS 5.0、5.1にあります。サムネイル画像のみカラフルに表示できましたが、フルスクリーン画像では表示できませんでした。
どんなアイデアでも大歓迎です!!