jpg转heic时如何设置heif文件的网格?

问题描述 投票:0回答:2

我尝试使用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”或其他任何东西都可以。

grid heif
2个回答
0
投票

标题: 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 输出的选项。本示例重点介绍设置网格大小,但您可以探索该库提供的其他设置和功能。

注意: 始终确保遵守所用库的许可条款和条件。正确的错误处理和资源管理对于生产代码至关重要,但在这个简化的示例中可能被省略。


0
投票

不幸的是,heif-enc 程序尚不支持使用网格将图像编码为 HEIF。它也不允许用户指定 ispe 框。

您可以在 libheif github 上请求以下功能: https://github.com/strukturag/libheif

© www.soinside.com 2019 - 2024. All rights reserved.