2017-10-15 24 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 
}