将heic转换为JPG并获取文件位置

时间:2018-10-17 17:48:14

标签: ios swift phasset

我正在尝试将多个图像上传到后端,但是我正在使用的后端不支持图像的heic格式。因此,我想将这些heic图像转换为JPG并与文件位置一起上传。我正在使用以下方法从fileURL上传图像。

func uploadTask(with request: URLRequest, fromFile fileURL: URL) -> URLSessionUploadTask

我正在使用PHAsset来获取fileURL。

1)那么如何在不影响质量的情况下将heic图像转换为JPG并获取文件位置?

2)如果将heic图像转换为JPG,会增加图像的大小吗?

1 个答案:

答案 0 :(得分:0)

我想出了解决方案。当我们从PHAsset获取FileURL时,如果Image是HGIC,则可以将其转换为UIImageJPEGRepresentation并获取数据。然后,您可以使用以下方法上传数据

func uploadTask(with request: URLRequest, from bodyData: Data) -> URLSessionUploadTask

如果是JPG,则可以使用fileURL(只要后端支持该文件格式,就可以将其用于任何fileURL,在我的情况下,后端不支持HGIC格式,因此我不得不将其转换为数据)

func uploadTask(with request: URLRequest, fromFile fileURL: URL) -> URLSessionUploadTask

当我们将HGIC转换为JPG或PNG时,存在一些缺点:

1)在这里,当我们将HGIC图像转换为JPG时,CPU和内存使用率将会更高。

2)转换图像时,尺寸会更大。例如,以1.0(最高质量)进行转换可以将文件大小(JPG文件)增加到30-35%