HarmonyOS 读取PixelMap的ArrayBuffer,再使用读取的数据创建PixelMap展示,图片变成了黑白,丢失了颜色。
读取PixelMap的ArrayBuffer,再使用读取的数据创建PixelMap,图片变成了黑白,丢失了颜色。
1、读取PixelMap的ArrayBuffer:
async pixelMapToArray(pixelMap:PixelMap){
//size为需要创建的像素buffer大小,取值为:height * width *4
let size = pixelMap.getPixelBytesNumber();
const readBuffer: ArrayBuffer = new ArrayBuffer(size);
if (pixelMap) {
await pixelMap.readPixelsToBuffer(readBuffer);
let bufferSize = readBuffer.byteLength;
return readBuffer;
}
return readBuffer;
}
2、使用读取的数据创建PixelMap:
arrayToPixelMap(readBuffer: ArrayBuffer | null, w:number, h:number, callback:(pixelMap:PixelMap)=>void){
let opts: image.InitializationOptions = { editable: true, pixelFormat: image.PixelMapFormat.RGBA_8888,
size: { height: h, width: w } }
image.createPixelMap(readBuffer, opts).then((pixelMap)=>{
callback(pixelMap);
});
}
3、调用:
PhotoChangeUtils.pixelMapToArray(pixelMap).then((buffer)=>{
let imageInfo = pixelMap.getImageInfoSync();
let w = imageInfo.size.width;
let h = imageInfo.size.height;
PhotoChangeUtils.arrayToPixelMap(buffer, w, h, (pixelMap)=>{
this.livePixelMap = pixelMap;
} )
})
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
通过资源管理对象来读取资源目录下的图片文件并创建pixelMap
2619浏览 • 1回复 待解决
HarmonyOS 使用image展示pixelMap无法展示图片 ,但有确切的值
1432浏览 • 1回复 待解决
HarmonyOS使用ArrayBuffer 构造PixelMap 数据报错问题
1788浏览 • 1回复 待解决
HarmonyOS中使用ArrayBuffer 构造PixelMap 数据报错问题?
1018浏览 • 0回复 待解决
HarmonyOS 从文件读取图片为pixelMap 怎样做平铺和纯色填充、图片裁切
742浏览 • 1回复 待解决
图片文件与PixelMap、ArrayBuffer如何互相转换?
1120浏览 • 1回复 待解决
HarmonyOS pixelmap读到的数据调整options后文件损坏,无法再当成图片使用,再次传入createpixelmap报错Create PixelMap error
623浏览 • 1回复 待解决
可以以颜色创建pixelmap吗
1067浏览 • 1回复 待解决
HarmonyOS pixelMap转成ArrayBuffer
1658浏览 • 1回复 待解决
HarmonyOS 通过RawFileEntry读取PNG图片PixelMap,经ImagePacker编码,为JPEG格式。
10558浏览 • 3回复 待解决
HarmonyOS 如何在A组件创建PixelMap,在B子组件展示图片
1127浏览 • 1回复 待解决
HarmonyOS 存在应用沙箱目录内的图片文件如何转换为PixelMap以及ArrayBuffer类型的数据
835浏览 • 1回复 待解决
HarmonyOS createPixelMap 创建 PixelMap 发现图片变黄了
1068浏览 • 1回复 待解决
HarmonyOS 通过RGBA数据创建PixelMap,保存到文件中是纯黑的图片
1161浏览 • 1回复 待解决
HarmonyOS 文件读取ArrayBuffer中文乱码的问题
1230浏览 • 1回复 待解决
native层创建的pixelmap,arraybuffer等内存数据,传给ts层使用,最后是ts层的系统自动释放回收内存吗?
1524浏览 • 1回复 待解决
HarmonyOS 如何把Webview截图转ArrayBuffer或者pixelMap
746浏览 • 1回复 待解决
HarmonyOS rn打包的图片文件名字变成了数字加字母的格式,没法使用
773浏览 • 1回复 待解决
HarmonyOS 如何使用image.createPixelMaph创建PixelMap
766浏览 • 1回复 待解决
HarmonyOS 怎么改pixelmap颜色
821浏览 • 1回复 待解决
HarmonyOS 读取图片数据接口,执行顺序问题
945浏览 • 1回复 待解决
HarmonyOS PixelMap加载图片
1069浏览 • 1回复 待解决
根据Buffer生成的PixelMap,显示颜色错误
1387浏览 • 1回复 待解决
HarmonyOS 使用CAPI创建pixelmap设置pixelFormat不生效
832浏览 • 1回复 待解决
鸿蒙JS 图片读取 请问怎么读取到摄像机拍摄的图片?
3485浏览 • 1回复 待解决
由image.createPixelMap描述可知通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过Promise返回结果,即使创建pixelMap时的buffer和options都是rgba格式的,当前接口只能处理BGRA流,建议尝试统一更改为BGRA_8888。
参考示例: