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

Posted

技术标签:

【中文标题】将 heic 转换为 JPG 并获取文件位置【英文标题】:Converting the heic to JPG and get file location 【发布时间】:2018-10-17 17:48:14 【问题描述】:

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

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

我正在使用 PHAsset 来获取文件 URL。

1) 那么如何将 heic 图像转换为 JPG 并丢失任何质量并获取文件位置?

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

【问题讨论】:

从它创建图像时有什么问题?只需保存该图像的 jpeg 表示即可。 *** 的工作方式是您向我们展示您为解决问题而编写的代码,我们可以帮助您找到解决方案。重要的是您必须先尝试自己做(并向我们展示您的尝试)。就像 Leo 说的,你有没有尝试过创建一个UIImage,然后从中获取JPEG 数据? 【参考方案1】:

我想出了解决方案。当我们从 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%

【讨论】:

以上是关于将 heic 转换为 JPG 并获取文件位置的主要内容,如果未能解决你的问题,请参考以下文章

HEIC格式是什么?怎么将HEIC图片转换JPG?

HEIC文件怎么打开,一键批量将HEIC图片转换JPG/PNG/BMP

HEIC文件怎么打开,一键批量将HEIC图片转换JPG/PNG/BMP

如何使用heic图片转换精灵,将heic转成JPG

如何使用heic图片转换精灵,将heic转成JPG

Heic图片转换精灵无损转换JPG/PNG/BMP方法