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
2645浏览 • 1回复 待解决
HarmonyOS 使用image展示pixelMap无法展示图片 ,但有确切的值
1443浏览 • 1回复 待解决
HarmonyOS使用ArrayBuffer 构造PixelMap 数据报错问题
1807浏览 • 1回复 待解决
HarmonyOS中使用ArrayBuffer 构造PixelMap 数据报错问题?
1035浏览 • 0回复 待解决
HarmonyOS pixelmap读到的数据调整options后文件损坏,无法再当成图片使用,再次传入createpixelmap报错Create PixelMap error
639浏览 • 1回复 待解决
图片文件与PixelMap、ArrayBuffer如何互相转换?
1182浏览 • 1回复 待解决
HarmonyOS 从文件读取图片为pixelMap 怎样做平铺和纯色填充、图片裁切
762浏览 • 1回复 待解决
可以以颜色创建pixelmap吗
1074浏览 • 1回复 待解决
HarmonyOS pixelMap转成ArrayBuffer
1697浏览 • 1回复 待解决
HarmonyOS 如何在A组件创建PixelMap,在B子组件展示图片
1156浏览 • 1回复 待解决
HarmonyOS 通过RawFileEntry读取PNG图片PixelMap,经ImagePacker编码,为JPEG格式。
10644浏览 • 3回复 待解决
HarmonyOS 存在应用沙箱目录内的图片文件如何转换为PixelMap以及ArrayBuffer类型的数据
854浏览 • 1回复 待解决
HarmonyOS createPixelMap 创建 PixelMap 发现图片变黄了
1124浏览 • 1回复 待解决
HarmonyOS 通过RGBA数据创建PixelMap,保存到文件中是纯黑的图片
1213浏览 • 1回复 待解决
HarmonyOS 文件读取ArrayBuffer中文乱码的问题
1262浏览 • 1回复 待解决
HarmonyOS rn打包的图片文件名字变成了数字加字母的格式,没法使用
788浏览 • 1回复 待解决
native层创建的pixelmap,arraybuffer等内存数据,传给ts层使用,最后是ts层的系统自动释放回收内存吗?
1539浏览 • 1回复 待解决
HarmonyOS 如何把Webview截图转ArrayBuffer或者pixelMap
756浏览 • 1回复 待解决
HarmonyOS 如何使用image.createPixelMaph创建PixelMap
780浏览 • 1回复 待解决
HarmonyOS 怎么改pixelmap颜色
834浏览 • 1回复 待解决
HarmonyOS PixelMap加载图片
1088浏览 • 1回复 待解决
根据Buffer生成的PixelMap,显示颜色错误
1422浏览 • 1回复 待解决
HarmonyOS 读取图片数据接口,执行顺序问题
956浏览 • 1回复 待解决
HarmonyOS 使用CAPI创建pixelmap设置pixelFormat不生效
847浏览 • 1回复 待解决
HarmonyOS flutter动图保存到系统相册变成了静态图片?
1156浏览 • 1回复 待解决
由image.createPixelMap描述可知通过属性创建PixelMap,默认采用BGRA_8888格式处理数据,通过Promise返回结果,即使创建pixelMap时的buffer和options都是rgba格式的,当前接口只能处理BGRA流,建议尝试统一更改为BGRA_8888。
参考示例: