HarmonyOS PixelMap对象调用getPixelByteNumber方法返回的值是原PixelMap对象的10倍左右

现在做给图片添加水印功能,使用OffscreenCanvasRenderingContext2D类的drawImage方法传入原始PixelMap然后添加水印再用OffscreenCanvasRenderingContext2D的getPixelMap方法获取新的PixelMap对象但是使用ImagePacker的packing方法操作新的PixelMap对象就会报错,调试发现使用新PixelMap对象调用getPixelByteNumber方法返回的值是原PixelMap对象的10倍左右,麻烦问下这个是什么原因呢?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

下面的调用加上第三个参数,默认是vp, 不是pixel,所以尺寸变大,导致默认内存不够。

const offScreenCanvas = new OffscreenCanvas(imageInfo.size.width,imageInfo.size.height,1) 

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-components-offscreencanvas-V5

下面的PackingOption也可以加上buffersize(根据实际情况设置)。

const packOpts: image.PackingOption = { format: 'image/jpeg', quality: 100, bufferSize:50*1024*1024 }
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS JSON转换后调用对象方法报错
173浏览 • 1回复 待解决
HarmonyOS pixelMap
8浏览 • 1回复 待解决
HarmonyOS 如何获取对象方法列表
448浏览 • 1回复 待解决
HarmonyOS Jsons解析对象无法调用防范
558浏览 • 1回复 待解决