开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 148|回复: 4
收起左侧

[技术专题] .heic 或 .heif图片转换为png或bmp格式模块免费分享

[复制链接]
发表于 昨天 02:28 | 显示全部楼层 |阅读模式   北京市北京市
.heic 或 .heif图片转换为png或bmp格式模块免费分享
在使用iPhone拍照时,你可能注意到照片的后缀是 .heic 或者 .heif,而不是我们常见的 .jpg 或 .png。这种格式叫 HEIC(High Efficiency Image Container),是一种更高效的图像压缩格式。但问题来了:很多电脑和软件不支持直接打开它。
那么,HEIC到底是什么?为什么iPhone要用它?又该怎么打开、查看、转换呢?
今天我们就来手把手教你怎么应对HEIC文件!
一、什么是HEIC格式?
HEIC 是一种由苹果公司从 iPhone 7 开始引入的新型图片格式,全称是 High Efficiency Image File Format(高效图像文件格式),基于 HEVC/H.265 视频编码技术。

二、iPhone为什么会默认用HEIC?
苹果为了优化存储空间和提升画质,从 iOS 11 开始,将 iPhone 的默认照片格式改成了 HEIC。这意味着:
如果你的 iPhone 设置为“高效”模式,拍照后就是 HEIC 格式;
如果设置为“兼容”模式,则会保存为 JPG 格式。
如何查看/修改iPhone的照片格式?
打开「设置」 > 「相机」 > 「格式」;看是否勾选了“高效”或“兼容JPEG”。

三、HEIC怎么查看?几种实用方法推荐
方法一:在 iPhone 上直接打开(最简单)
默认情况下,iPhone 的“照片”App 支持 HEIC;发送给别人用微信、QQ、iMessage都没问题,对方也能正常查看;
在 Safari 浏览器中也可以直接打开 HEIC 图片。
方法二:在 Mac 上打开(macOS High Sierra 及以上)
苹果从 macOS High Sierra 开始原生支持 HEIC;使用“预览”、“照片”App 或浏览器都可以直接打开;
若你用的是旧版本 macOS,请升级系统或使用在线工具。
方法三:在 Windows 上打开
Windows 本身不自带 HEIC 解码器,你需要手动安装:
打开 Microsoft Store(微软商店);搜索并安装 HEIF Image Extensions 和 HEVC Video Extensions – Manufacturer License(这两个插件);安装完成后,就可以用“照片”App 或资源管理器直接打开 HEIC 文件了。

四、HEIC怎么用易语言读取并显示?
1、项目介绍
libheif 是一个强大的开源库,用于解码和编码符合 ISO/IEC 23008-12:2017 标准的 HEIF 和 AVIF(AV1 图像文件格式)文件。这两种新格式利用 HEVC(H.265)或 AV1 图像编码技术,提供了目前可能的最佳压缩比例。


2、项目技术分析
libheif 使用 libde265 进行 HEIF 图像解码,并采用 x265 进行编码。对于 AVIF,它可以配合 AOM、dav1d、svt-av1 或 rav1e 等多种 AV1 编解码器进行处理。该库支持 HEIC、AVIF、JPEG-in-HEIF、JPEG2000 及无损格式等多种图像类型,还具备透明度通道、深度图、缩略图等高级功能。


3、项目及技术应用场景
libheif 的广泛应用场景包括:
图片存储:HEIF 和 AVIF 文件格式在提供高清晰度的同时,文件大小更小,适合在网络上传输和存储。
移动应用开发:为智能手机和平板电脑应用提供高效的图片加载和显示。
图像处理工具:支持对图像进行裁剪、翻转、旋转等操作,以及读取和保存元数据。
Web 开发:优化网页上的图像加载速度,提高用户体验。
4、项目特点
兼容性广:支持多种图像格式,包括 HEIF、AVIF、JPEG 和 JPEG2000,且能够自动识别和处理 HEIF 和 AVIF。
高效编码:采用先进的 HEVC 和 AV1 编码技术,实现较高的压缩率。
插件接口:通过插件接口,可以添加自定义编解码器,拓展性强。
API 友好:提供 C 语言和 C++ 头文件的 API,易于集成到各种编程环境中,同时还有一份实验性的 Go API。
跨平台:可在 Linux、macOS 和 Windows 上构建并运行,满足不同环境需求。
读写 HEIF 文件只需简单几步,例如使用易语言:


  
子程序名返回值类型公开备 注
heif转png字节集 将heic,heif格式图像转png
参数名类 型参考可空数组备 注
输入图像字节集输入heif,heif图像字节集
变量名类 型静态数组备 注
ctx整数型 
handle整数型 
p字节集 
q字节集 
width整数型 
height整数型 
ctx = heifinit ()  ' 初始化heif库
' 调试输出 (ctx)
handle = gethandle (取变量数据地址 (输入图像), 取字节集长度 (输入图像), ctx)  ' 载入图像
' 调试输出 (handle)
width = getw (handle)  ' 获取图像宽度
' 调试输出 (width)
height = geth (handle)  ' 获取图像高度
' 调试输出 (height)
q = 取空白字节集 (width × height × 4)  ' 申请内存用于存放转换后的图像
heic2rgba (handle, width, height, 取变量数据地址 (q))  ' 先还原为rgba原始像素数据
destroy (ctx, handle)  ' 销毁heif实例,释放内存
rgba2png (取变量数据地址 (q), width, height)  ' 将RGBA编码为png
返回 (q)


i支持库列表   支持库注释   
spec特殊功能支持库

1.jpg

一条命令调用子程序即可:

p = 读入文件 (“C:\demo.heic”)
_启动窗口.底图 = heif转bmp (p)  ' p是示例图像是3024×4032像素

完整示例代码放网盘里了,用得着的自取。
链接:https://pan.quark.cn/s/717fcbbf4324









评分

参与人数 1好评 +1 精币 +2 收起 理由
Maxximal + 1 + 2 这么厉害!必须给个红包鼓励下~

查看全部评分


签到天数: 4 天

发表于 3 小时前 | 显示全部楼层   河北省保定市
使用imagemagick也是可以解决的
回复 支持 反对

使用道具 举报

签到天数: 6 天

发表于 昨天 12:10 | 显示全部楼层   广东省惠州市
厉害了呀 以前专门找过这个 没找到
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 5 天

发表于 昨天 10:34 | 显示全部楼层   江苏省扬州市
感谢大神分享. 技术流
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 2 天

发表于 昨天 09:33 | 显示全部楼层   浙江省宁波市
。。。。。。。。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表