2017-10-15 19 views
4

iPhoneからバックエンドサービスに写真をアップロードするためのアプリを保守しています。現在のところ、このサービスは新しいHEIF形式をサポートしていないので、フォトフレームワークに写真データをjpegに変換する方法はありますか?バックエンドにアップロードするためのHEIF写真をJPEGに変換

私はPHImageManager.requestImageData(for:options:resultHandler:)を使用して、イメージからデータオブジェクトを取得し、それをREST APIにアップロードします。

答えて

2

(新しいソリューション、以前のものは、EXIF情報を保持していなかった)

、EXIF情報と、JPEG写真などの画像を取得HEIF画像データからCIImageオブジェクトを作成し、取得するためにCIContext.jpegRepresentation(of:を使用するにはデータオブジェクトとしてのjpeg符号化画像

let imageManager = PHImageManager.default() 
var photo : PHAsset 
var options : PHImageRequestOptions 

imageManager.requestImageData(for: photo, options: options, resultHandler: { 
       imageData,dataUTI,orientation,info in 
let ciImage = CIImage(data: imageData!) 
if #available(iOS 10.0, *) { 
    data = CIContext().jpegRepresentation(of: ciImage!, colorSpace: CGColorSpaceCreateDeviceRGB())! 
    // upload image data 
} 
関連する問題