HarmonyOS 鸿蒙Next 缩略图如何转成Uint8Array数据

发布于 1周前 作者 phonegap100 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 缩略图如何转成Uint8Array数据

const thumbData = await getContext(this).resourceManager.getMediaContent($r("app.media.minprologo"))
const thumbPixel = image.createImageSource(thumbData.buffer).createPixelMapSync()
const thumbBuffer:Uint8Array = await image.createImagePacker().packToData(thumbPixel, { format: "image/png", quality: 100 })

上面这段是微信SDK中的分享示例,但是他们没有demo,意思就是把资源图片转成Uint8Array格式,但是语法提示找不到packToData,不知道该怎么改了


更多关于HarmonyOS 鸿蒙Next 缩略图如何转成Uint8Array数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

参考如下代码

resourceManagerImgae() {

  // 本地图片转uint8

  getContext(this).resourceManager.getMediaContent($r("app.media.mid"))
    .then((data) => { let arrayBuffer = data.buffer.slice(data.byteOffset, data.byteLength + data.byteOffset)

    this.imageUnit8 = new Uint8Array(arrayBuffer);
    let imageSource: image.ImageSource = image.createImageSource(arrayBuffer);

    //获取图像像素信息
    imageSource.getImageInfo((err, value) => { if (err) { return; }

      //获取解码参数
      let opts: image.DecodingOptions = { editable: true, desiredSize: { height: value.size.height, width: value.size.width } };
      imageSource.createPixelMap(opts, (err, pixelMap) => {

        //这个回调的pixelMap就是当前图片的pixelMap
        this.image = pixelMap
      })
    })
  })
}

更多关于HarmonyOS 鸿蒙Next 缩略图如何转成Uint8Array数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,将缩略图转换成Uint8Array数据通常涉及图像数据的读取与转换。以下是一个简要的步骤说明,不涉及Java或C语言内容:

  1. 获取缩略图:首先,确保你已经获取到图像的缩略图数据,这通常是以位图(Bitmap)形式存在。

  2. 转换为字节数组:在鸿蒙系统中,你需要将位图数据转换为字节数组。这通常涉及到遍历位图的像素数据,并将其转换为字节格式。鸿蒙可能提供了API来直接获取位图的字节数据,或者你需要手动实现这一转换。

  3. 封装为Uint8Array:一旦你有了字节数组,你可以将其封装为JavaScript中的Uint8Array。这通常涉及到创建一个新的Uint8Array实例,并将字节数组的数据复制进去。

示例代码(伪代码,因为具体API可能因鸿蒙版本而异):

// 假设 bitmap 是已经获取的缩略图位图对象
let byteArray = convertBitmapToByteArray(bitmap); // 需要实现此函数
let uint8Array = new Uint8Array(byteArray);

function convertBitmapToByteArray(bitmap) {
    // 实现位图到字节数组的转换逻辑
    // 注意:这里的实现依赖于鸿蒙提供的API或手动遍历像素数据
    return byteArray;
}
回到顶部