
前言图片的Base64编码和PixelMap转换是图片处理的基础操作在图片上传、分享、缓存等场景中经常使用。pura/harmony-utils的ImageUtil封装了Base64与PixelMap互转方法。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解帮助开发者快速掌握并应用到实际项目中。一、ImageUtil转换核心APIImageUtil提供了以下图片转换方法方法说明返回类型使用场景base64ToPixelMap(base64)Base64转PixelMapPixelMap图片解码展示pixelMapToBase64(pixelMap)PixelMap转Base64string图片上传/分享base64ToArrayBuffer(base64)Base64转ArrayBufferArrayBuffer二进制数据处理1.1 核心特性简洁易用封装复杂API为一行调用降低使用门槛类型安全完整的TypeScript类型定义编译期即可发现错误异常处理内置异常捕获机制避免运行时崩溃双向转换支持Base64和PixelMap的双向转换1.2 转换流程对照转换方向源格式目标格式典型场景解码Base64PixelMap网络图片展示编码PixelMapBase64图片上传/存储转换Base64ArrayBuffer二进制处理二、完整使用步骤2.1 安装依赖ohpminstallpura/harmony-utils2.2 Base64转PixelMapimport{ImageUtil}frompura/harmony-utils;Button(Base64转PixelMap).width(100%).onClick(async(){try{letbase64Str...;// Base64编码的图片字符串letpixelMapawaitImageUtil.base64ToPixelMap(base64Str);this.result转换成功 ✅\nPixelMap尺寸:${pixelMap.getImageInfo().size};}catch(e){this.result异常: e;}})2.3 PixelMap转Base64Button(PixelMap转Base64).width(100%).onClick(async(){try{letbase64awaitImageUtil.pixelMapToBase64(this.pixelMap);this.result转换成功 ✅\nBase64长度:${base64.length};}catch(e){this.result异常: e;}})三、完整页面示例import{ImageUtil}frompura/harmony-utils;EntryComponentstruct ImageConvertDemo{Stateresult:string;build(){Column({space:12}){Button(Base64转PixelMap).width(100%).onClick(async(){try{this.resultBase64与PixelMap互转\n适用于图片上传和缓存;}catch(e){this.result异常: e;}});Text(this.result).fontSize(14).fontColor(#333333)}.padding(16)}}四、进阶用法4.1 图片上传封装import{ImageUtil}frompura/harmony-utils;asyncfunctionuploadImage(pixelMap:PixelMap):Promisevoid{letbase64awaitImageUtil.pixelMapToBase64(pixelMap);letresponseawaitfetch(https://api.example.com/upload,{method:POST,body:JSON.stringify({image:base64})});returnresponse.json();}4.2 图片缓存管理asyncfunctioncacheImage(pixelMap:PixelMap,key:string):Promisevoid{letbase64awaitImageUtil.pixelMapToBase64(pixelMap);PreferencesUtil.putString(key,base64);}asyncfunctiongetCachedImage(key:string):PromisePixelMap|null{letbase64PreferencesUtil.getString(key,);if(base64){returnawaitImageUtil.base64ToPixelMap(base64);}returnnull;}五、注意事项Base64格式需确保Base64字符串包含正确的数据前缀内存占用Base64编码比原始数据大约33%异步操作转换方法为异步需使用await初始化依赖使用前需确保AppUtil.init()已调用大图片大图片转换可能耗时建议在子线程处理六、常见问题Q1: Base64转PixelMap失败检查Base64字符串是否完整是否包含正确的MIME类型前缀。Q2: 转换后图片模糊可能是Base64编码时质量损失建议使用无损格式如PNG。Q3: Base64字符串太长怎么办可以先压缩图片再转Base64或使用文件上传替代Base64传输。Q4: 如何判断Base64是否为有效图片检查Base64前缀是否包含data:image/标识。总结ImageUtil的Base64与PixelMap互转方法为图片处理提供了便捷支持。本文详细介绍了核心API、使用步骤、完整示例、进阶用法以及常见问题的解决方案。开发者可以根据场景选择合适的转换方向。本文基于pura/harmony-utils工具库更多功能请参考官方文档与后续系列文章。