HarmonyOS 鸿蒙Next 如何直接加载二进制流的图片
HarmonyOS 鸿蒙Next 如何直接加载二进制流的图片 官方文档提供了image组件,但是参数只接受Stirng、PixelMap和Resource的格式
如果要加载二进制流ArrayBuffer的图片,还需要直接转换成base64或者PixelMap格式,这太麻烦了,图片多起来就会大大的影响性能
请问各位大佬知不知道什么方法,能够跳过这一步转换,直接将二进制流加载成为图片呢
改固件(大嘘)
官方的几位回复你估计也只是后续支持
更多关于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
提供了从不同数据源创建图像的能力,包括二进制流。具体步骤如下:
-
创建
ImageSource
对象:使用ImageSource
的静态方法create
,传入二进制流数据,可以创建图像源。 -
解码图像:通过
ImageSource
的createPixelMap
方法将二进制流解码为PixelMap
对象。 -
显示图像:将
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、内存中的二进制流等。通过这种方式,可以灵活地在鸿蒙系统中加载和显示二进制流图片。