iOS支持佳能RAW格式?

时间:2011-09-25 06:56:57

标签: iphone ios uiimage

我知道iPad可以在与相机套件一起使用时读取Canon RAW(.CR2)文件,但是iOS浏览器可以读取哪种文件格式?或者我们仅限于UIImage类参考文档中支持的内容?

https://developer.apple.com/documentation/uikit/uiimage

1 个答案:

答案 0 :(得分:1)

对于类似这样的事情,Apple的图像API不足以满足您的需求。但是,有一些第三方API可以与iPhone一起使用。 Libraw是一个很好的,我发现它有一个C接口。由于Objective-C是C的严格超集,因此您可能可以在iOS应用程序中使用它。

从我在他们的文档中看到的,您可以将CR2图像编写为TIFF,然后将其解码为UIImage,如下所示:

NSString * cr2Path = @"path/to/cr2/file";
NSString * tiffPath = [NSTemporaryDirectory stringByAppendingPathComponent:@"x.tiff"];

libraw_data_t * cr2Data = libraw_init(0);
libraw_open_file(cr2Data, [cr2Path UTF8String]);
libraw_unpack(cr2Data);
// setup encoding params
cr2Data->params.output_tiff = 1;
cr2Data->params.use_camera_wb = 1;
// encode and write as tiff
libraw_dcraw_process(cr2Data);
libraw_dcraw_ppm_tiff_writer(cr2Data, [tiffPath UTF8String]);
libraw_recycle(cr2Data); // free the memory
// load the UIImage
UIImage * myImage = [[UIImage alloc] initWithContentsOfFile:tiffPath];
// use myImage here ...
[myImage release];

从我看到的情况来看,您似乎可以download it here然后添加src/libraw/dcraw/和{的src文件{1}} Xcode项目的目录。希望您不会遇到任何奇怪的链接/编译问题。