从ALAsset读取CMYK文件

时间:2012-11-06 20:59:48

标签: ios uiimageview uiimage alassetslibrary cmyk

我想从iOS Photo Library中读取CMYK图像。

e.g。 CMYK file sample 在Safari中打开此文件并按住并保存到相机胶卷。

然后我使用ALAsset Library在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中。只有缩略图可以显示彩色,但不能显示在全屏图像中。

任何想法都会受到赞赏!!

0 个答案:

没有答案