2

对于我目前正在进行的一个项目,我正在尝试将一堆 PNG 图像转换为 HEIF/HEIC。这些图像将在 Xcode 中使用.xcassets,然后将被“编译”成一个.car文件。

编译 PNG(总共约 150 个文件)会产生约 40 MB 的 . Assets.car,这就是为什么我首先尝试将它们转换为 HEIF/HEIC 的原因。我尝试了各种解决方案,例如 ImageMagick、GIMP 中的“导出为”、biodranik/HEIFlibheif's heif-enc、在 Photoshop 中将 PNG 导出为 8 位或 16 位,然后重新进行所有操作。但是一切都会导致.heic文件在 iOS 上被“破坏”。第一张图片显示了迄今为止我得到的最佳输出,但边缘仍然存在边缘。右边的白色圆角矩形是 iOS 的 Face ID 挂锁。

在此处输入图像描述

第二张图片是(我认为)一个 16 位 PNG 转换为 HEIC 使用libheif@1.8.0,通过 Homebrew 升级。无损质量预设,10 位输出。heif-enc抱怨色彩空间从 RGB 转换为 YCbCr,说明even though you specified lossless compression, there will be differences because of the color conversion

极端例子

有什么方法可以正确地将 PNG 文件转换为 HEIF/HEIC 而不会造成这种质量损失?请不要建议在线服务来转换文件,因为我想完全控制我的文件。

4

1 回答 1

0

注意:要获得无损编码,您需要这组选项。尝试 :-

  -L                       switch encoder to lossless mode
  -p chroma=444            switch off color subsampling
  --matrix_coefficients=0  encode in RGB color-space
于 2020-09-26T22:11:18.230 回答