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

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

HarmonyOS
2024-12-24 17:20:10
浏览
收藏 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
微信
回复
2024-12-24 20:00:15
相关问题
HarmonyOS 关于获取pixelmap对象代码示例
252浏览 • 1回复 待解决
HarmonyOS JSON转换后调用对象方法报错
301浏览 • 1回复 待解决
HarmonyOS pixelMap
218浏览 • 1回复 待解决