把 HEIC 和 AVIF 装进你的项目:libheif 编解码库快速上手

发布时间:2026/8/23 0:22:10

把 HEIC 和 AVIF 装进你的项目:libheif 编解码库快速上手
把 HEIC 和 AVIF 装进你的项目libheif 编解码库快速上手【免费下载链接】libheiflibheif is an HEIF and AVIF file format decoder and encoder.项目地址: https://gitcode.com/gh_mirrors/li/libheif一张 HEIC 照片在 Mac 上正常发到 Windows 就发灰多半是对方缺 HEIF/AVIF 的编解码支持。libheif 是一个把 HEIC、AVIF 读写统一成同一套 C 接口的开源编解码库装上它你的应用就能读这些新格式。 libheif 安装步骤与最小解码示例三种平台各一行安装命令macOSbrew install cmake make pkg-config x265 libde265 libjpeg libtoolWindowsvcpkg install libheif源码编译Linux 等git clone https://gitcode.com/gh_mirrors/li/libheif进入build目录后执行cmake --presetrelease .. make--preset需要 CMake ≥ 3.21装好之后先看一段最短的 HEIC/AVIF 解码代码。注意heif_context_read_from_file对任意格式都成立换文件不用改代码heif_context* ctx heif_context_alloc(); heif_context_read_from_file(ctx, input_filename, nullptr); // 取主图像句柄 heif_image_handle* handle; heif_context_get_primary_image_handle(ctx, handle); // 解码为 24 位交错 RGB heif_image* img; heif_decode_image(handle, img, heif_colorspace_RGB, heif_chroma_interleaved_RGB, nullptr); int stride; const uint8_t* data heif_image_get_plane_readonly(img, heif_channel_interleaved, stride); heif_image_release(img); heif_image_handle_release(handle); heif_context_free(ctx);编译安装成功后data里就是解码出的像素也就是下面这张仓库自带的 AVIF 示例图核心能力为什么选它压缩效率HEIC 用 HEVCH.265、AVIF 用 AV1 编码同画质下体积大约只有 JPEG 的一半。你拿它存照片、传照片存储和带宽各省一半。一套接口通吃多格式解码器对 HEIF、AVIF 及其他压缩格式用同一套 C 接口你的解码代码不用改就能读任何格式。编码时把格式参数从heif_compression_HEVC换成heif_compression_AV1就切到 AVIF 输出。HDR、透明度与多图像它能按内嵌颜色配置做正确的 HDR 颜色转换也能读透明通道、深度图、缩略图和辅助图像一个文件里可以装多张图。你做多图层或高动态范围图像时不用再自己拼格式。图块与流式超大图可以逐图块解码内存里不必一次性放下整张还能通过>格式解码器编码器HEIClibde265, ffmpegx265, kvazaarAVIFAOM, dav1dAOM, rav1e, svt-av1VVCvvdecvvenc, uvg266AVCopenh264x264JPEGlibjpeg(-turbo)libjpeg(-turbo)JPEG2000OpenJPEGOpenJPEGHTJ2KOpenJPEGOpenJPH无损内置内置从 v1.14.0 起每个编解码器既可静态编进库也能编译成动态插件按需加载用 CMake 的WITH_{codec}_PLUGIN选项逐个决定。运行时插件从环境变量LIBHEIF_PLUGIN_PATH冒号分隔Windows 用分号指向的目录列表读取。 多语言接入路径C、Go、Python、Rust、.NET、Swift、JavaFX 都有现成绑定能直接调 C 库的语言如 Swift、C#开箱即用C 封装是库的一部分头文件-only保持二进制兼容。想跑在浏览器里可以用 emscripten 把 libheif 编译成 JavaScriptmkdir buildjs cd buildjs USE_WASM0 ../build-emscripten.sh ..需要 WASM 输出就把USE_WASM改成1纯 JS 路径则走浏览器自带的 webcodecs 接口。 进阶用法图块、EXIF 与自带工具超大图分块落地真遇到放不下内存的图逐图块解码、再逐块编码落盘即可编码时一个图块一个图块追加不必一次性持有整张。EXIF 读取按类型名查一次元数据块 ID再取大小、取数据三步拿到完整 EXIF 字节XMP 同理。自带命令行工具示例程序位于examples/目录。heif-dec把 HEIF/AVIF 里的所有图导出成 JPEG 或 PNG也就是常说的 HEIC 转 JPEGheif-enc把 JPEG 等转成 HEIF/AVIFheif-info是极简解码器把文件结构打印到控制台加-d还能 dump 完整的 box 结构。Gnome 缩略图heif-thumbnailer可作 Gnome 桌面的 HEIF/AVIF 缩略图生成器配套配置文件见gnome/目录。生态与依赖已有不少软件直接基于 libheifGIMP、Krita、ImageMagick、GraphicsMagickdarktable、digiKam、libvips、libGDkImageFormats、Kodi HEIF 解码插件、bimg、GDAL、OpenImageIO、XnView许可证libheif 遵循 GNU LGPLLesser General Public License分发示例程序采用 MIT 许可证细节见仓库根目录的COPYING。如果你要写能读 HEIC/AVIF 的应用、做 HEIC 转 JPEG 之类的批处理或给浏览器加 AVIF 支持libheif 都能直接上手它把多种格式的读写收敛到一套接口依赖还能按需裁剪。【免费下载链接】libheiflibheif is an HEIF and AVIF file format decoder and encoder.项目地址: https://gitcode.com/gh_mirrors/li/libheif创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

CSP-J初赛集训:26课时系统攻克计算机基础与算法核心考点

CSP-J初赛集训:26课时系统攻克计算机基础与算法核心考点

2026/8/23 0:22:10

1. 从零开始的CSP-J初赛备战:为什么集训是最高效的路径?如果你正在为孩子或者为自己规划信息学竞赛的入门之路,那么“CSP-J/S”这个名字一定不陌生。作为国内最具权威性和影响力的计算机科学普及活动之一,它的第一轮认证&#xff…

GHelper:一个exe替代Armoury Crate,华硕ROG/TUF用户免费上手的轻量控制工具

GHelper:一个exe替代Armoury Crate,华硕ROG/TUF用户免费上手的轻量控制工具

2026/8/23 0:22:10

GHelper:一个exe替代Armoury Crate,华硕ROG/TUF用户免费上手的轻量控制工具 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar…

AI编程助手安全风险:如何防范恶意软件包与供应链攻击

AI编程助手安全风险:如何防范恶意软件包与供应链攻击

2026/8/23 0:22:10

最近在技术社区看到一个真实案例:一位工程师在开发过程中,使用 AI Agent 辅助解决一个依赖包安装问题,AI 竟然建议安装一个包含恶意软件的包。工程师差点就执行了这条指令,细思极恐。这起事件暴露了 AI 辅助编程工具在带来巨大便利…

网易云变灰时怎么办:NetEasyMusic 一次搜索自动匹配 QQ 音乐双平台播放

网易云变灰时怎么办:NetEasyMusic 一次搜索自动匹配 QQ 音乐双平台播放

2026/8/23 1:12:12

网易云变灰时怎么办:NetEasyMusic 一次搜索自动匹配 QQ 音乐双平台播放 【免费下载链接】NeteaseMusic 网易云音乐 & QQ音乐 & 咪咕音乐 第三方 web端 (可播放 vip、下架歌曲) 项目地址: https://gitcode.com/gh_mirrors/ne/NeteaseMusic NetEasyMus…

通达信缠论插件 ChanlunX 指南:30 分钟装好,主图自动画出笔、线段、中枢

通达信缠论插件 ChanlunX 指南:30 分钟装好,主图自动画出笔、线段、中枢

2026/8/23 1:12:12

通达信缠论插件 ChanlunX 指南:30 分钟装好,主图自动画出笔、线段、中枢 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 通达信缠论插件 ChanlunX 替你省掉手动画线的活&#xff1…

毫秒级求解非线性最优控制:acados 如何帮你把 MPC 求解器「编译」出来

毫秒级求解非线性最优控制:acados 如何帮你把 MPC 求解器「编译」出来

2026/8/23 1:12:12

毫秒级求解非线性最优控制:acados 如何帮你把 MPC 求解器「编译」出来 【免费下载链接】acados Fast and embedded solvers for nonlinear optimal control and nonlinear model predictive control 项目地址: https://gitcode.com/gh_mirrors/ac/acados aca…

[光学原理与应用-524]:光的干涉,是单光子的运动特性,而不是不同光子相互作用的特性!!!

[光学原理与应用-524]:光的干涉,是单光子的运动特性,而不是不同光子相互作用的特性!!!

2026/8/23 1:12:12

光的干涉:单光子自身干涉,不是光子之间互相作用核心结论:光的干涉本质是单个光子自身的量子叠加行为,不是一个光子和另一个光子发生相互作用、互相干扰。通俗讲:不是 “光子 A 撞光子 B 产生条纹”,而是同一…

[光学原理与应用-523]:光的干涉是不同光子的相互作用效果的叠加?还是多个单光子自身干涉效果的叠加?

[光学原理与应用-523]:光的干涉是不同光子的相互作用效果的叠加?还是多个单光子自身干涉效果的叠加?

2026/8/23 1:12:12

光的干涉:单光子自我干涉的统计积累直接答案:一阶干涉(双缝、薄膜、迈克尔逊等经典干涉)本质上是每个光子自身概率幅的自我干涉,大量光子的积累只是把单个光子的概率分布变成了可见条纹(单个光子总的能量太…

10 分钟上手 ZeroBrane Studio:Lua IDE 从 Hello World 到远程调试

10 分钟上手 ZeroBrane Studio:Lua IDE 从 Hello World 到远程调试

2026/8/23 1:02:12

10 分钟上手 ZeroBrane Studio:Lua IDE 从 Hello World 到远程调试 【免费下载链接】ZeroBraneStudio Lightweight Lua-based IDE for Lua with code completion, syntax highlighting, live coding, remote debugger, and code analyzer; supports Lua 5.1, 5.2, 5…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/23 0:02:09

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/23 0:02:09

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/23 0:02:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/23 0:02:09

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/23 0:02:09

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/23 0:02:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…