HarmonyOS 通过RGBA数据创建PixelMap,保存到文件中是纯黑的图片

我的RGBA数据是从opengl中的纹理读取出来的,拿到RGBA数据后在TS层后打印日志查看buffer数据是正常的,但是通过createPixelMapSync创建PixelMap后再writeBufferToPixels最后再保存到文件中,查看jpg文件是黑色的图片

static getImagePixelByTexture(tid: number, width: number, height: number): Promise<PixelMap | null> {
  return new Promise<PixelMap | null>((resolve, reject) => {
  let event: emitter.InnerEvent = {
    eventId: GetImagePixelByTextureEvent
  };
  let callback = async (eventData: emitter.EventData): Promise<void> => {
    if (eventData.data != null) {
      let pixelByte: Uint8Array = new Uint8Array(eventData.data.result)
      let pixelMap = image.createPixelMapSync({
        size: { width, height },
        srcPixelFormat: image.PixelMapFormat.RGBA_8888,
        pixelFormat: image.PixelMapFormat.RGBA_8888,
      })
      for (let index = 0; index < 100; index++) {
        hilog.debug(0x00, "getImagePixelByTexture",  `${pixelByte[index]}`)
      }
      await pixelMap.writeBufferToPixels(pixelByte.buffer)
      resolve(pixelMap)
    } else {
      resolve(null)
    }
  }
  emitter.once(event, callback);

  GLWorker.getInstance().postMessage({
    type: 'GetImagePixelByTexture',
    tid: tid,
    width: width,
    height: height
  });
})
}

以下是保存图片的代码

let pixelMap:PixelMap | null = await GLInterface.getImagePixelByTexture(tid,imageWidth,imageHeight)
let packImageByte:ArrayBuffer = await image.createImagePacker().packing(pixelMap!,{
  format:"image/jpeg",
  quality: 100
})
let file = await fileIo.open(`${getContext().tempDir}/readImage.jpg`,fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE)
await fileIo.write(file.fd,packImageByte)
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

传入createPixelMapSync的数据是SharedArrayBuffer,需要转为ArrayBuffer

分享
微博
QQ
微信
回复
1天前
相关问题
PixelMap怎么保存图片文件
615浏览 • 1回复 待解决
HarmonyOS 图片保存到相册
16浏览 • 1回复 待解决
HarmonyOS如何将PixelMap保存到相册?
738浏览 • 1回复 待解决
HarmonyOS image.PixelMap保存到 相册问题
37浏览 • 1回复 待解决
HarmonyOS 图片保存到相册报错
292浏览 • 1回复 待解决
如何将像素点保存到图片文件
2449浏览 • 1回复 待解决
HarmonyOS Resource文件如何保存到沙箱
190浏览 • 1回复 待解决
把应用沙箱下图片保存到图库
1426浏览 • 1回复 待解决