转换为JPEG给定图像数据和UTI
鉴于Data及其UTI,将其转换为JPEG的正确方法是什么?
PHImageManager.default().requestImageData(for: asset, options: options, resultHandler: { (imageData: Data?, dataUTI: String?, _, _) in guard let imageData = imageData, let dataUTI = dataUTI else { return } if !UTTypeConformsTo(dataUTI as CFString, kUTTypeJPEG) { //TODO: Convert to JPEG } })
刚刚将这个问题与PHImageManager以.heic而不是.jpeg的forms返回,这对我有用:
PHImageManager.default().requestImageData(for: asset, options: PHImageRequestOptions(), resultHandler: { (data, string, orient, info) in if string?.range(of: ".heic") != nil || string?.range(of: ".heif") != nil { let rawImage = UIImage(data: data!) self.uploadData = UIImageJPEGRepresentation(rawImage!, 1.0) self.uploadName = "public.jpeg" } else { self.uploadData = data self.uploadName = string } self.uploadFileToServer() })
如果它的UTType是JPEG
,则您已经拥有图像的正确JPEG
编码表示。 如果要将该图像显示在屏幕上,只需要使用给定数据调用init?(data:)
初始化程序初始化UIImage
对象。