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
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS pixelMap保存的图片如何进行保存到相册
293浏览 • 1回复 待解决
HarmonyOS 怎么把图片的PixelMap保存到应用沙箱中
27浏览 • 1回复 待解决
HarmonyOS media图片文件保存到文件目录中
119浏览 • 1回复 待解决
HarmonyOS 创建pdf添加文字或者图片,保存到本地打卡是空白内容
2浏览 • 1回复 待解决
PixelMap怎么保存成图片文件
615浏览 • 1回复 待解决
HarmonyOS PixelMap保存到文件时报错PackedSize outside size
338浏览 • 1回复 待解决
pixelMap 和 imageSource 的数据类型如何保存到相册
2453浏览 • 1回复 待解决
HarmonyOS 图片保存到相册
16浏览 • 1回复 待解决
HarmonyOS如何将PixelMap保存到相册?
738浏览 • 1回复 待解决
HarmonyOS image.PixelMap保存到 相册问题
37浏览 • 1回复 待解决
HarmonyOS中如何将图片的base64格式文件通过解码保存到相册?
155浏览 • 0回复 待解决
HarmonyOS 项目中图片如何保存到相册中?
268浏览 • 1回复 待解决
HarmonyOS 图片保存到相册报错
292浏览 • 1回复 待解决
如何将像素点保存到图片文件
2449浏览 • 1回复 待解决
HarmonyOS 文件保存,pdf、xlsx文件如何保存到本地
237浏览 • 1回复 待解决
鸿蒙开发HarmonyOS图片该如何保存到数据库
9788浏览 • 2回复 待解决
HarmonyOS 图片对象PixelMap已编码为图片形式保存本地文件目,无法保存成功
12浏览 • 1回复 待解决
HarmonyOS如何将图片的base64格式文件通过解码保存到相册
797浏览 • 1回复 待解决
HarmonyOS Resource的文件如何保存到沙箱
190浏览 • 1回复 待解决
通过OH_Pixelmap_CreatePixelMap创建的对象,内存是怎么分配的?
1236浏览 • 1回复 待解决
通过资源管理对象来读取资源目录下的图片文件并创建pixelMap
1460浏览 • 1回复 待解决
HarmonyOS PhotoViewPicker保存图片为什么不能保存到图库
187浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过Native实现将网络图片保存到应用沙箱中?
441浏览 • 1回复 待解决
HarmonyOS view生成图片,然后保存到相册
347浏览 • 1回复 待解决
把应用沙箱下的图片保存到图库
1426浏览 • 1回复 待解决
传入createPixelMapSync的数据是SharedArrayBuffer,需要转为ArrayBuffer