0

いくつかのRAW画像を操作するために使用したSwiftで書かれた小さなスクリプトがあり、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) です。もう1つの違いは、URLでロードするときのタイプが「com.canon.cr2-raw-image」であることです。

データのサイズは正しく、URL は正しく、ファイルは正しく読み込まれています。Swift 自体に問題がないことを確認するために、ここで Objective-C を使用してファイルを読み込もうとします。

何か案は?新しい RAW 画像ファイルと既にテスト済みの RAW 画像ファイルの両方を試しました。

4

0 に答える 0