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、libheifheif-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 而不会造成质量损失的主要内容,如果未能解决你的问题,请参考以下文章

将 BMP 实例转换为 png

将png图片转换为字体图标

使用iMazing软件将HEIC格式的图片转换为常见格式,例如JPEG,PNG

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

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

将 png 文件转换为 txt 文件