Arkts将图片编码为base64格式

在向一些api接口传递图片信息时,有时需要将图片转为base64格式的数据进行传递,以下时转换步骤

1、导入一些需要的包

import util from '@ohos.util'; // 导入工具函数,可能用于Base64编码
import { image } from '@kit.ImageKit'; // 导入图像处理功能

2、创建需要用到的实例化对象

  //创建需要用到的实例化对象
  // 初始化一个Uint8Array以保存图像数据
  let bufferArr: Uint8Array = new Uint8Array();
  // 从上下文获取资源管理器
  let resourceManager = getContext(this).resourceManager;
  // 创建图像打包器实例
  const imagePackerApi: image.ImagePacker = image.createImagePacker();
  // 打包选项
  let packOpts: image.PackingOption = { format: 'image/png', quality: 30 };
  // 解码选项
  let opts: image.DecodingOptions = { editable: true };
  // 创建Base64Helper实例
  let help = new util.Base64Helper;

3、将需要转换的图片调用进来,并进行转换

!!!!!!注意在测试时需要用模拟器进行测试,不然可能输出不了转换之后的字符串数据

// 使用资源管理器检索媒体内容(图像)
let imageArray = await resourceManager.getMediaContent($r('图片路径'));
// 从图像数据创建一个ArrayBuffer
let pixelBuffer = new Uint8Array(imageArray).buffer as Object as ArrayBuffer;
// 从像素缓冲区创建图像源
let imageResource = image.createImageSource(pixelBuffer);
// 从图像资源创建像素图
let pixelMap = await imageResource.createPixelMap(opts);
// 将像素图打包为图像
imagePackerApi.packing(pixelMap, packOpts).then((readBuffer) => {
// readBuffer为打包后得到的ArrayBuffer
bufferArr = new Uint8Array(readBuffer); // 转换为Uint8Array
// 将图像数据转换为Base64
this.base = help.encodeToStringSync(bufferArr, util.Type.BASIC);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值