HarmonyOS 鸿蒙Next 如何直接加载二进制流的图片

HarmonyOS 鸿蒙Next 如何直接加载二进制流的图片 官方文档提供了image组件,但是参数只接受Stirng、PixelMap和Resource的格式

如果要加载二进制流ArrayBuffer的图片,还需要直接转换成base64或者PixelMap格式,这太麻烦了,图片多起来就会大大的影响性能

请问各位大佬知不知道什么方法,能够跳过这一步转换,直接将二进制流加载成为图片呢

4 回复

改固件(大嘘)
官方的几位回复你估计也只是后续支持

更多关于HarmonyOS 鸿蒙Next 如何直接加载二进制流的图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


但老实说还是 arraybuffer 转 pixelmap 直接显示就行,这也不会很影响性能,没看 imageknife 就是这样干的,

开发环境:DevEco Studio 3.1 、Stage模型 、ArkTS语言、API 9

在HarmonyOS鸿蒙Next中,直接加载二进制流的图片可以通过ImageSource类实现。ImageSource提供了从不同数据源创建图像的能力,包括二进制流。具体步骤如下:

  1. 创建ImageSource对象:使用ImageSource的静态方法create,传入二进制流数据,可以创建图像源。

  2. 解码图像:通过ImageSourcecreatePixelMap方法将二进制流解码为PixelMap对象。

  3. 显示图像:将PixelMap对象设置到UI组件(如Image组件)中进行显示。

示例代码如下:

import image from '@ohos.multimedia.image';

// 假设binaryData是获取到的二进制流数据
let binaryData: ArrayBuffer = ...;

// 创建ImageSource对象
let imageSource = image.createImageSource(binaryData);

// 解码为PixelMap
let pixelMap = await imageSource.createPixelMap();

// 显示图像
// 假设imageComponent是UI中的Image组件
imageComponent.pixelMap = pixelMap;

ImageSource支持从多种数据源创建图像,包括文件路径、网络URL、内存中的二进制流等。通过这种方式,可以灵活地在鸿蒙系统中加载和显示二进制流图片。

回到顶部