鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解 📅 2026/7/21 2:50:25 前言将应用中的图片保存到本地相册是常见的用户需求如保存截图、下载图片等。pura/harmony-utils的ImageUtil封装了图片保存方法支持保存PixelMap到系统相册。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、ImageUtil保存核心APIImageUtil提供了以下图片保存方法方法说明返回类型使用场景savePixelMap(pixelMap)保存PixelMap到相册string截图保存saveImageToArrayBuffer(path)图片转ArrayBufferArrayBuffer图片处理1.1 核心特性简洁易用封装复杂API为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃相册集成保存后可在系统相册中查看1.2 保存方式对照方式方法保存位置可见性相册保存savePixelMap系统相册所有应用可见文件保存writeArrayBufferSync应用目录仅本应用可见二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 保存图片到相册import{ImageUtil}frompura/harmony-utils;Button(保存图片到相册).width(100%).onClick(async(){try{leturiawaitImageUtil.savePixelMap(this.pixelMap);this.result保存成功 ✅\nURI:${uri};}catch(e){this.result异常: e;}})2.3 保存前确认asyncsaveWithConfirm(){letconfirmawaitDialogUtil.confirm(是否保存图片到相册);if(confirm){leturiawaitImageUtil.savePixelMap(this.pixelMap);ToastUtil.show(保存成功);}}三、完整页面示例import{ImageUtil,ToastUtil}frompura/harmony-utils;EntryComponentstruct ImageSaveDemo{Stateresult:string;build(){Column({space:12}){Button(保存图片).width(100%).onClick(async(){try{this.result图片保存功能\n需先创建PixelMap对象;}catch(e){this.result异常: e;}});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 截图保存import{ImageUtil,SnapshotUtil,ToastUtil}frompura/harmony-utils;asyncfunctionsaveScreenshot(component:Component):Promisevoid{letpixelMapawaitSnapshotUtil.snapshot(component);leturiawaitImageUtil.savePixelMap(pixelMap);ToastUtil.showToast(截图已保存到相册);}4.2 批量保存asyncfunctionsaveMultipleImages(pixelMaps:PixelMap[]):Promisestring[]{leturis:string[][];for(letpixelMapofpixelMaps){leturiawaitImageUtil.savePixelMap(pixelMap);uris.push(uri);}returnuris;}五、注意事项权限要求保存到相册需要相册写入权限主线程保存操作需在主线程执行文件格式默认保存为PNG格式初始化依赖使用前需确保AppUtil.init()已调用存储空间保存前检查存储空间是否充足六、常见问题Q1: 保存图片时提示权限不足需要在module.json5中配置ohos.permission.WRITE_IMAGEVIDEO权限并动态申请。Q2: 保存后相册中看不到部分设备需要刷新相册索引可以通知媒体库更新。Q3: 如何指定保存格式当前版本默认PNG格式如需其他格式需先转换再保存。Q4: 保存大图片会OOM吗大图片保存可能消耗较多内存建议先压缩再保存。总结ImageUtil的图片保存方法为应用图片导出提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以利用这些方法实现截图保存、图片下载等功能。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。