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

发布时间:2026/10/21 22:05:27

把 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),仅供参考
延伸阅读

更多相关文章

2026/10/22 3:11:46

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

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

2026/10/22 8:53:57

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

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

2026/10/22 21:26:42

PenguinHarness 0.2.1:一句话造 Agent,告别手搓胶水代码

1. 从"手搓 Agent"到"一句话造 Agent"的转变逻辑1.1 为什么 Agent 开发一直是个体力活做过 Agent 项目的人都有一个共同感受:真正难的不是模型调用,而是围绕模型的那一整套"脚手架"。你要处理工具注册、参数校验、多轮对话…

2026/10/22 21:26:42

大模型训练提速:ops-math算子库的融合、布局、调度与精度四板斧

前些日子帮一个团队排查训练慢的问题。显存占用接近100%,可一个训练步走下去,算力核心的有效利用率却只有三成出头。这情况不算罕见:模型越来越大,可真正拖后腿的往往不是模型结构本身,而是藏在计算图里那些细碎小算子…

2026/10/22 21:26:42

YOLOv11旋转目标检测:OBB原理、训练与部署实战

搞CV的应该都有这种经历:手里攥着几百张无人机航拍图,里面全是朝向乱七八糟的车、房顶、还有带角度排列的太阳能板。第一版用普通YOLO系列跑,mAP看起来还挺像回事,结果一放大可视化,预警框恨不得把半条街都包进来——两…

2026/10/22 21:26:42

STP、RSTP与MSTP本质差异解析:从环路防护到多VLAN逻辑分治

1. 项目概述:为什么STP系列协议至今仍是网络工程师绕不开的“必修课” 你刚拿到一台新交换机,接上几根网线,连通几个终端,网络看似跑起来了——但只要拓扑稍一复杂,比如两台核心交换机之间用两条链路互连,或…

2026/10/22 21:26:42

生成式草图世界模型:让GUI智体从“看见”到“预判”

2. 让智体看懂屏幕:为什么GUI操作不能只靠“看一眼点一下”做GUI智体(也就是能自己操作手机App的AI智能体)这件事,前两年还主要是学术界在玩,大家用静态截图喂给模型,让它预测下一步该点哪里。可真做过落地…

2026/10/22 21:16:14

JAX分布式训练超轻松:从单卡到多机多卡的实战指南

前段时间我把一个模拟图像分类模型从单卡扩展到多机多卡,前后折腾了一圈,最大的感触是:JAX把分布式训练的门槛压得非常低。如果你已经会写JAX单卡训练,那这篇文章就非常值得看完——我会分享这次实践中最手把手的代码方案、多机环…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑