我尝试使用grid的ispe将jpg转换为heic。
我在 Ubuntu 中使用了 heif-enc,如下所示。
heif-enc -o output.heic input.jpg
转换没有错误,但“output.heic”元数据没有网格的 ispe(图像空间范围)。 它只有图像本身的 ispe。 通过heif-enc,可以添加缩略图ispe,但我找不到设置网格ispe的方法。
如何将网格的 ispe 设置为 512x512(普通类型)? 最好有办法使用“heif-enc”或其他任何东西都可以。
标题: JPG转HEIC时如何设置HEIF文件的网格?
将 JPG 图像转换为 HEIC(高效图像文件格式)可以在保持图像质量的同时显着减小文件大小。要在转换过程中设置 HEIF 文件的网格,您可以使用
libheif
库和 libjpeg
来处理转换。我将指导您完成在类 Unix 系统(Linux、macOS)以及 Windows 上实现此目标的步骤。
第1步:安装必要的库和工具
确保您的系统上安装了
libheif
和 libjpeg
:
Linux(Ubuntu/Debian):
sudo apt-get update
sudo apt-get install libheif-dev libjpeg-dev
macOS(自制):
brew install libheif
brew install jpeg
Windows: 从各自的官方网站下载并安装
libheif
和 libjpeg
的预编译二进制文件。确保包含必要的头文件。
第 2 步:编写 C 代码
创建一个使用
libheif
和 libjpeg
执行转换并设置网格大小的 C 程序。
第3步:编译代码
使用 C 编译器编译 C 代码。确保链接所需的库。
Linux/macOS:
gcc -o jpg_to_heic jpg_to_heic.c -lheif -ljpeg
Windows(假设为 MinGW):
gcc -o jpg_to_heic.exe jpg_to_heic.c -lheif -ljpeg
第 4 步:运行转换器
使用输入 JPEG 文件、所需输出 HEIF 文件以及要设置的网格大小运行转换器。例如:
./jpg_to_heic input.jpg output.heic 16
这会将
input.jpg
转换为 output.heic
,网格大小为 16。根据您的喜好或要求调整网格大小。
请记住,
libheif
是一个功能强大的库,它提供了许多其他用于配置 HEIF 输出的选项。本示例重点介绍设置网格大小,但您可以探索该库提供的其他设置和功能。
注意: 始终确保遵守所用库的许可条款和条件。正确的错误处理和资源管理对于生产代码至关重要,但在这个简化的示例中可能被省略。
不幸的是,heif-enc 程序尚不支持使用网格将图像编码为 HEIF。它也不允许用户指定 ispe 框。
您可以在 libheif github 上请求以下功能: https://github.com/strukturag/libheif