根据Buffer生成的PixelMap,显示颜色错误
一个ArrayBuffer,内部为RGBA_8888格式的颜色数据。将这个ArrayBuffer转成PixelMap, 最后存成文件。打开这个文件,发现显示颜色错误。怀疑是把RGBA_8888数据当成BGRA_8888处理了,修改pixelFormat参数无效。
以下是出问题的示例代码:
let frameCb = (color: ArrayBuffer, index: number): boolean => {
hilog.error(0, "marvel", "generateVideoFrame pts: %{public}d",index);
let opts: image.InitializationOptions = { editable: true, pixelFormat: 3, size: { height: param.imgHeight, width: param.imgWidth } }
image.createPixelMap(color, opts).then((pixelMap: image.PixelMap) => {
console.info('Succeeded in creating pixelmap.');
let packOpts : image.PackingOption = { format:"image/png", quality:98 };
const imagePackerApi = image.createImagePacker();
const context : Context = getContext(this);
const path : string = context.cacheDir + "/pixel_map.jpg";
let file = fs.openSync(path, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
imagePackerApi.packToFile(pixelMap, file.fd, packOpts).then(() => {
console.info('Succeeded image/jpeg.');
}).catch((error : BusinessError) => {
console.error('Failed to pack the image. And the error is: ' + error);
})
}).catch((error: BusinessError) => {
console.error('Failed to create pixelmap.');
})
return false;
};
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
验证pixelmap数据buffer转base64是否正常
1738浏览 • 1回复 待解决
可以以颜色创建pixelmap吗
233浏览 • 1回复 待解决
HarmonyOS 二维码生成,想要生成背景颜色为透明的,设置无效
266浏览 • 1回复 待解决
HarmonyOS image.PixelMap的writePixels(area,..)返回错误62980115
81浏览 • 1回复 待解决
List组件divider颜色显示透List组件颜色
222浏览 • 0回复 待解决
文字背景颜色渐变显示
2088浏览 • 1回复 待解决
根据指定字符串,随机生成 指定长度的字符串
350浏览 • 1回复 待解决
如何生成一个十六进制的颜色色值?
327浏览 • 1回复 待解决
3DES如何根据指定KEY、IV生成SymKey对称秘钥?
545浏览 • 1回复 待解决
bean类系统自动生成的set方法报语法错误
1706浏览 • 1回复 待解决
HarmonyOS 在有键盘的页面,Toast显示位置错误
210浏览 • 1回复 待解决
通过photoPicker.select获取到用户的照片uri后,如何生成该照片的 pixelMap 对象
316浏览 • 1回复 待解决
HarmonyOS 中有无类似BuildConfig构建配置功能,根据配置项运行或者打包生成不同的产物
447浏览 • 1回复 待解决
HarmonyOS 在使用Image图片组件时,放入pixelMap无法显示图片
204浏览 • 1回复 待解决
HarmonyOS 有方法实现文本颜色渐变显示吗?
357浏览 • 1回复 待解决
HarmonyOS Buffer功能太过简陋。
325浏览 • 1回复 待解决
配置文件如何根据安装设备设置显示分辨率?
2478浏览 • 1回复 待解决
生成应用证书文件遇到keytool 错误: java.io.IOException: Invalid keystore format
16574浏览 • 1回复 待解决
运行flutter doctor -v后显示错误代码
950浏览 • 1回复 待解决
既然已有了redo log,而且速度比buffer pool还快,那buffer pool存在的意义是什么呢?
2298浏览 • 1回复 待解决
为什么在 openGauss 中使用“explain timing”时显示错误?
2403浏览 • 1回复 待解决
#鸿蒙学习大百科#对于SymbolSpan的颜色显示有多少种模式?
143浏览 • 1回复 待解决
Slider如何设置已滑过的颜色和未滑过的颜色?
331浏览 • 1回复 待解决
如何生成一张二维码并设置二维码颜色?
344浏览 • 1回复 待解决
以流创建pixelmap,该接口只能接受bgra格式,按照bgra去读取流做处理。接口参数设置的foramt是出参,如果入参流的排列不是bgra,无论怎么设,都会导致颜色错误。 可将入参流调整为bgra格式。