HarmonyOS照片存储升级与应用适配说明

描述

在 HarmonyOS 7.0(API26)Developer Beta 1 版本中,HarmonyOS 设备将相机拍照默认格式从 JPG 切换为了 HEIF。

这次变化面向的是一个非常日常的体验:照片越来越清晰,文件也越来越大,用户的相册和云端备份都更需要高效存储。HEIF 是高效图像文件格式,主流 HEIF 图片通常采用 HEVC(H.265)编码,在典型照片场景下可在保持良好画质体验的同时降低文件体积。

相机拍照默认格式从 JPG 切换到 HEIF 后,同样的相册记录更不容易快速占满空间,长期拍照、备份和分享也更轻。可以把它理解为从传统保存方式升级为更高效的照片保存方式。

Developer

图:存储空间优化示意

一、体验升级不只发生在相机里

对用户而言,格式变化最好是无感的:继续拍照、查看、上传、编辑、分享,不需要理解文件后缀和编码细节。

对应用和服务链路而言,HEIF 图片会逐渐出现在相册选择、内容发布、客服传图、云端备份、图片编辑等场景中,体验是否连续,取决于这些链路是否正确处理 HEIF。

二、图片上传:先看扩展名,再看 MIME Type

上传失败的常见原因是:扩展名过滤、白名单机制等。应用或网页上传入口,会校验文件扩展名,只允许.jpg、.jpeg、.png 等扩展名,导致.heic、.heif 文件还没进入后续处理就被拒绝。部分应用可能还会校验文件的 MIME Type,同样建议将“image/heic”和“image/heif”放行,以免用户无法上传照片,带来体验割裂。

Developer

图:扩展名过滤说明

三、图片选择:理解JPEG 兼容副本

从 API version 20 开始,系统在部分访问链路中会将 HEIF 图片转换为兼容性更好的 JPEG 图片,以降低应用处理成本并提升兼容性。应用具备 HEIF 处理能力,但未向系统声明,最终拿到的可能是系统生成的 JPEG 兼容副本。

从 API version 26.0.0 开始,系统进一步提供了通过显式声明以确保获取 HEIF 原图的能力,应用可在 PhotoSelectOptions 中声明应用支持 HEIF。

示例如下:

DeveloperDeveloper

图:PhotoViewPicker/URI 兼容副本说明

四、文件校验:以最终拿到的文件为准

由于部分链路可能发生兼容转换,不能仅根据 URI 后缀、文件名、MEDIA_SUFFIX 或媒体库记录的 SIZE 判断真实格式和大小。

对上传、分享、编辑、后处理等关键链路,应基于最终文件的二进制内容重新读取 MIME、宽高和文件大小。

示例如下:

DeveloperDeveloper

图:真实文件信息校验说明

五、兼容处理:需要时再转码

如果业务链路、服务端或第三方平台暂不支持 HEIF,可借助 Image Kit 提供的图片编解码能力,将 HEIF 转码为 JPEG 或 PNG。转码前建议先确认最终拿到的真实格式,避免对已经是 JPEG 兼容副本的文件再次编码。

Developer

图:按需转码说明

从 JPG 到 HEIF,不只是相机默认格式的一次变化,而是照片存储效率、系统图片能力和应用体验连续性的一次协同升级。用户感受到的是相册更轻,应用需要保障的是图片选择、上传、预览、编辑和分享都不被格式变化打断。

更多细节可参考:

如何处理 HEIF 图片-Image Kit 常见问题-Image Kit(图片处理服务)-媒体-华为 HarmonyOS 开发者

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分