问题描述
对于我当前正在从事的项目,我正在尝试将一堆PNG图像转换为HEIF / HEIC。这些图像将在Xcode的.xcassets
中使用,然后将其“编译”为.car
文件。
编译PNG(共约150个文件)会产生约40 MB的Assets.car
,这就是为什么我首先尝试将其转换为HEIF / HEIC的原因。我尝试了各种解决方案,例如ImageMagick,GIMP中的“导出为”,biodranik/HEIF,libheif
的{{1}},在Photoshop中将PNG导出为8位或16位然后再做一遍。但是,一切都会导致heif-enc
文件在iOS上“损坏”。第一张图片显示的是我到目前为止获得的最佳输出,但是边缘仍然有条纹。右侧的白色圆角矩形是iOS的Face ID挂锁。
第二张图片是(我认为)使用.heic
转换为HEIC的16位PNG,并通过Homebrew进行了升级。预设的无损质量10位输出。 libheif@1.8.0
抱怨色彩空间从RGB转换为ycbcr,并指出heif-enc
有什么方法可以将PNG文件正确转换为HEIF / HEIC,而不会造成质量损失?请不要建议在线服务来转换文件,因为我想完全控制我的文件。
解决方法
注意:要获得无损编码,您需要这组选项。尝试:-
-L switch encoder to lossless mode
-p chroma=444 switch off color subsampling
--matrix_coefficients=0 encode in RGB color-space