CGImageSource无法打开RAW Canon图像文件(使用Swift)

时间:2015-11-25 15:31:48

标签: xcode swift cgimagesource

我有一个用Swift编写的小脚本,我曾经操作过一些RAW图像,直到Xcode的某个先前版本才开始创造奇迹(我不记得最后一个版本是哪一个,但我知道它适用于版本7.0,因为我将它转换为Swift 2并测试了它。)

但是当我今天试图运行它时,它无法运行。我在一个小片段中分离了这个问题:

let turl = NSURL(string: "file:///some/random/path/IMG_5467.CR2")!

let tdata = NSData(contentsOfURL: turl)

print ("data size = \( tdata!.length )")

//let imageSource = CGImageSourceCreateWithURL( turl, nil );
let imageSource = CGImageSourceCreateWithData(tdata!, nil);

print( "StatusComplete = \(CGImageSourceStatus.StatusComplete.rawValue)" );
print( "StatusUnknownType = \(CGImageSourceStatus.StatusUnknownType.rawValue)" );

print( "URL: \(turl) - \(imageSource) - status \( CGImageSourceGetStatus(imageSource!).rawValue )" );
print( "count \( CGImageSourceGetCount(imageSource!) )" );
print( "status 0 \( CGImageSourceGetStatusAtIndex(imageSource!, 0).rawValue )" );
print( "type \( CGImageSourceGetType( imageSource! ) )" );

print( "Supported types: \( CGImageSourceCopyTypeIdentifiers() )" )

exit(1)

这是结果输出:

data size = 24730146
StatusComplete = 0
StatusUnknownType = -3
URL: file:///some/random/path/IMG_5467.CR2 - Optional(<CGImageSource 0x7fd51a40d2d0 [0x7fff7763ded0]>) - status -3
count 0
status 0 -3
type nil

当我尝试直接通过URL加载图像时(使用CGImageSourceCreateWithURL),图像源状态为0(StatusComplete),但索引0中的状态也为-3(StatusUnknownType)。另一个区别是,使用URL加载时类型为“com.canon.cr2-raw-image”。

数据大小正确,URL正确,因此URL正确并正确加载文件。我现在尝试使用Objective-C加载文件,只是为了确认它不是Swift本身的问题。

有什么想法吗?我尝试了新的和已经测试过的RAW图像文件。

0 个答案:

没有答案