gpt4 book ai didi

javascript - 粘贴图像数据时保持透明度

转载 作者:行者123 更新时间:2023-12-03 04:26:00 24 4
gpt4 key购买 nike

所以我目前正在尝试在图像之间进行碰撞测试,但我不理解某些行为。

canvas

我用 getImageData 抓取图像部分并尝试将其粘贴到另一个坐标中。但透明度并不一致。 imageData 对象数据数组告诉我,那些第一个像素没有不透明度,因为 alpha channel 设置为 0。那为什么当我将其粘贴回去时,我会得到那些白色像素?

function checkColisions(c, s, x, y) {
let canvasSection = c.ctx.getImageData(x, y, s.width, s.height);

for (let i=0; i<canvasSection.data.length; i+=4) {
if (canvasSection.data[i+3] == 255 && s.data[i+3] == 255 ) {
c.ctx.putImageData(s, x, y);
return false;
}
}

c.ctx.putImageData(s, x, y);

return true;
}

c是一个canvas类,里面有一个canvas对象

s 是图像 imageData 对象

x和y是我要粘贴的位置

最佳答案

putImageData 将覆盖实际的像素值,而不是添加到它们中。您可能想看看drawImage:https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage

您应该能够直接引用您之前的 Canvas 作为矩形(sx、sy、sWidth、sHeight)的输入,并将其绘制到您的“目标” Canvas (dx、dy、dWidth、dHeight)

关于javascript - 粘贴图像数据时保持透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43726509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com