HarmonyOS 鸿蒙Next API 12使用活体检测 获取到的mPixelMap如何转成base64
HarmonyOS 鸿蒙Next API 12使用活体检测 获取到的mPixelMap如何转成base64
API 12使用活体检测,返回检测结果,获取到的mPixelMap,如何转成base64,我们是需要将活体检测结果(头像图片),上送后台,进行公安联网检测
PixelMap转换成base64可以先使用imagePacker将pixelMap压缩后再进行base64,若要实现无损压缩,将PixelMap压缩成PNG,即调用imagePacker时,
let packOpts: image.PackingOption = { format: ‘image/jpeg’, quality: 100 };
参考如下代码:
async packingPixelMapToBase64(pixelMap: PixelMap){
// 创建ImagePacker实例
const imagePackerApi = image.createImagePacker();
// 设置打包参数
// format:图片打包格式,只支持 jpg 和 webp
// quality:JPEG 编码输出图片质量
// bufferSize:图片大小,默认 10M
const packOpts: image.PackingOption = { format: “image/jpeg”, quality: 100 };
imagePackerApi.packing(pixelMap, packOpts).then((data: ArrayBuffer) => {
let buf: buffer.Buffer = buffer.from(data);
let base64 = ‘data:image/jpeg;base64,’ + buf.toString(‘base64’, 0, buf.length);
console.info('base64: ’ + base64);
})
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
在HarmonyOS鸿蒙Next API 12中,若要将活体检测获取到的mPixelMap
转换成Base64编码,你可以按照以下步骤进行操作:
-
获取Bitmap对象:首先确保
mPixelMap
可以转换为Bitmap
对象,通常可以通过调用PixelMap
的toBitmap()
方法实现。 -
压缩Bitmap为ByteArray:将
Bitmap
对象压缩成字节数组。这可以通过Bitmap
的compress
方法完成,通常使用PNG或JPEG格式进行压缩。 -
编码ByteArray为Base64:使用Java内置的Base64编码工具类(如
java.util.Base64
)将字节数组编码为Base64字符串。
示例代码如下:
Bitmap bitmap = mPixelMap.toBitmap();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
String base64String = Base64.getEncoder().encodeToString(byteArray);
注意,压缩质量和格式可以根据需求调整。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html