【发布时间】:2018-03-27 07:51:18
【问题描述】:
我正在维护一个用于将照片从 iPhone 上传到后端服务的应用程序。目前该服务不支持新的 HEIF 格式,请问有没有办法让 Photos 框架将照片数据转换为 jpeg?
我使用PHImageManager.requestImageData(for:options:resultHandler:) 从图像中检索数据对象,然后将其上传到 REST API。
【问题讨论】:
标签: ios photosframework heif
我正在维护一个用于将照片从 iPhone 上传到后端服务的应用程序。目前该服务不支持新的 HEIF 格式,请问有没有办法让 Photos 框架将照片数据转换为 jpeg?
我使用PHImageManager.requestImageData(for:options:resultHandler:) 从图像中检索数据对象,然后将其上传到 REST API。
【问题讨论】:
标签: ios photosframework heif
(新解决方案,上一个没有保留EXIF信息)
要获取带有 EXIF 信息的 JPEG 照片图像,请从 HEIF 图像数据中创建 CIImage 对象并使用 CIContext.jpegRepresentation(of: 将 jpeg 编码的图像作为 Data 对象获取
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
}
【讨论】: