将 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/PNG/BMP