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
});
})
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
以下是保存图片的代码
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)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS pixelMap保存的图片如何进行保存到相册
721浏览 • 1回复 待解决
HarmonyOS 怎么把图片的PixelMap保存到应用沙箱中
395浏览 • 1回复 待解决
HarmonyOS media图片文件保存到文件目录中
482浏览 • 1回复 待解决
PixelMap怎么保存成图片文件
1011浏览 • 1回复 待解决
HarmonyOS PixelMap保存到文件时报错PackedSize outside size
878浏览 • 1回复 待解决
HarmonyOS 创建pdf添加文字或者图片,保存到本地打卡是空白内容
453浏览 • 1回复 待解决
pixelMap 和 imageSource 的数据类型如何保存到相册
2940浏览 • 1回复 待解决
HarmonyOS 图片保存到相册
409浏览 • 1回复 待解决
HarmonyOS image.PixelMap保存到 相册问题
565浏览 • 1回复 待解决
HarmonyOS如何将PixelMap保存到相册?
1161浏览 • 1回复 待解决
HarmonyOS中如何将图片的base64格式文件通过解码保存到相册?
573浏览 • 0回复 待解决
HarmonyOS 项目中图片如何保存到相册中?
654浏览 • 1回复 待解决
HarmonyOS 文件保存,pdf、xlsx文件如何保存到本地
846浏览 • 1回复 待解决
HarmonyOS 图片保存到相册报错
696浏览 • 1回复 待解决
HarmonyOS 图片对象PixelMap已编码为图片形式保存本地文件目,无法保存成功
422浏览 • 1回复 待解决
如何将像素点保存到图片文件
2788浏览 • 1回复 待解决
鸿蒙开发HarmonyOS图片该如何保存到数据库
10261浏览 • 2回复 待解决
HarmonyOS如何将图片的base64格式文件通过解码保存到相册
1143浏览 • 1回复 待解决
HarmonyOS Resource的文件如何保存到沙箱
586浏览 • 1回复 待解决
通过资源管理对象来读取资源目录下的图片文件并创建pixelMap
1889浏览 • 1回复 待解决
通过OH_Pixelmap_CreatePixelMap创建的对象,内存是怎么分配的?
1568浏览 • 1回复 待解决
HarmonyOS PhotoViewPicker保存图片为什么不能保存到图库
503浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过Native实现将网络图片保存到应用沙箱中?
933浏览 • 1回复 待解决
HarmonyOS view生成图片,然后保存到相册
830浏览 • 1回复 待解决
HarmonyOS 保存PixelMap到相册,显示保存成功,相册中的图片为空白图片,宽高都是0
534浏览 • 1回复 待解决
传入createPixelMapSync的数据是SharedArrayBuffer,需要转为ArrayBuffer