画像ファイルからEXIFデータを取得するために検索し、Swift用に書き戻しました。しかし、私はさまざまな言語の事前定義されたライブラリしか見つけることができませんでした。
「CFDictionaryGetValue」への参照も見つかりましたが、データを取得するにはどのキーが必要ですか?そして、どうすればそれを書き戻すことができますか?
私はこれを使用して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}"]
にあります。
スウィフト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
}
}