web-dev-qa-db-ja.com

EXIFデータの読み取りと書き込み

画像ファイルからEXIFデータを取得するために検索し、Swift用に書き戻しました。しかし、私はさまざまな言語の事前定義されたライブラリしか見つけることができませんでした。

「CFDictionaryGetValue」への参照も見つかりましたが、データを取得するにはどのキーが必要ですか?そして、どうすればそれを書き戻すことができますか?

11
Peter Silie

私はこれを使用してget画像ファイルからのEXIF情報:

import ImageIO

let fileURL = theURLToTheImageFile
if let imageSource = CGImageSourceCreateWithURL(fileURL as CFURL, nil) {
    let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil)
    if let dict = imageProperties as? [String: Any] {
        print(dict)
    }
}

カラープロファイルなどのさまざまな情報を含む辞書を提供します。EXIF情報は具体的にはdict["{Exif}"]にあります。

17
Eric Aya

スウィフト4

extension UIImage {
    func getExifData() -> CFDictionary? {
        var exifData: CFDictionary? = nil
        if let data = self.jpegData(compressionQuality: 1.0) {
            data.withUnsafeBytes {(bytes: UnsafePointer<UInt8>)->Void in
                if let cfData = CFDataCreate(kCFAllocatorDefault, bytes, data.count) {
                    let source = CGImageSourceCreateWithData(cfData, nil)
                    exifData = CGImageSourceCopyPropertiesAtIndex(source!, 0, nil)
                }
            }
        }
        return exifData
    }
}
2
Abhijeet Rai