iOS:将 PNG 转换为 HEIF/HEIC + Alpha 而不会造成质量损失
Posted
技术标签:
【中文标题】iOS:将 PNG 转换为 HEIF/HEIC + Alpha 而不会造成质量损失【英文标题】:iOS: Convert PNG to HEIF/HEIC + Alpha without quality loss 【发布时间】:2020-12-31 06:20:14 【问题描述】:对于我目前正在进行的一个项目,我正在尝试将一堆 PNG 图像转换为 HEIF/HEIC。这些图像将在 Xcode 的.xcassets
中使用,然后将其“编译”成.car
文件。
编译 PNG(总共约 150 个文件)会产生约 40 MB 的 Assets.car
,这就是我首先尝试将它们转换为 HEIF/HEIC 的原因。我尝试了各种解决方案,例如 ImageMagick、GIMP 中的“导出为”、biodranik/HEIF、libheif
的heif-enc
,在 Photoshop 中将 PNG 导出为 8 位或 16 位,然后重新进行所有操作.但一切都导致.heic
文件在 ios 上被“破坏”。第一张图片显示了迄今为止我得到的最佳输出,但边缘仍然存在边缘。右边的白色圆角矩形是 iOS 的 Face ID 挂锁。
第二张图片是(我认为)使用 libheif@1.8.0
转换为 HEIC 的 16 位 PNG,通过 Homebrew 升级。无损质量预设,10 位输出。 heif-enc
抱怨色彩空间从 RGB 转换为 YCbCr,说明 even though you specified lossless compression, there will be differences because of the color conversion
有没有什么方法可以正确地将 PNG 文件转换为 HEIF/HEIC 而不会造成这种质量损失?请不要推荐在线服务来转换文件,因为我想完全控制我的文件。
【问题讨论】:
【参考方案1】:注意:要获得无损编码,您需要这组选项。试试:-
-L switch encoder to lossless mode
-p chroma=444 switch off color subsampling
--matrix_coefficients=0 encode in RGB color-space
【讨论】:
以上是关于iOS:将 PNG 转换为 HEIF/HEIC + Alpha 而不会造成质量损失的主要内容,如果未能解决你的问题,请参考以下文章
使用iMazing软件将HEIC格式的图片转换为常见格式,例如JPEG,PNG
HEIC文件怎么打开,一键批量将HEIC图片转换JPG/PNG/BMP