CGImageSource не может открыть файл изображения RAW Canon (используя Swift)

У меня есть небольшой скрипт, написанный на 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 ответов

Другие вопросы по тегам