问题背景
通过getImageData函数得到的ImageData通过putImageData重新放到canvas容器无法进行resize操作,如果通过toDataURL函数转为Image再使用drawImage函数性能太差。
解决代码
处理代码出自:https://gist.github.com/mauriciomassaia/b9e7ef6667a622b104c00249f77f8c03
// 输入imageData,resize后的长宽
async function resizeImageData(imageData, width, height) {
const resizeWidth = width >> 0
const resizeHeight = height >> 0
const ibm = await window.createImageBitmap(imageData

文章提供了一种高性能的解决方法,通过使用createImageBitmap结合resize参数对ImageData进行缩放,然后在新的canvas上绘制,最后利用getImageData返回缩放后的数据。关键在于使用willReadFrequently选项提升频繁读取getImageData时的速度,以及避免drawImage的图像缺失问题。
529

被折叠的 条评论
为什么被折叠?



