gpt4 book ai didi

javascript - 使用Canvas将不透明像素变成白色

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:19 24 4
gpt4 key购买 nike

我正在寻找一种方法来拍摄图像( Logo 、应用程序图标等)并使用 javascript/canvas 将它们转换为白色(不包括透明度)。

这是我想要的示例(显然使用静态图像): http://jsfiddle.net/4ubyj/

最佳答案

Canvas API 具有专门用于“仅在原始图像中不透明的像素上绘制”之类的合成方法。这比弄乱图像数据要容易得多。

jsFiddle示例(现在带有内联图像)

向@WilliamVanRensselaer 最初的 fiddle 致敬。

您想要的复合操作是 source-in,这意味着“仅在绘制图像中不透明像素之上绘制我要绘制的不透明部分”

HTML:

<a href="javascript:doIt()">paint non-transparent regions white</a><br>
<canvas id="canvas" width="600" height="200"></canvas>

Javascript:

var canvas = document.getElementById( "canvas" ),
ctx = canvas.getContext( "2d" );

imgSrc = "http://d.pr/Td69+";
var b = document.getElementsByTagName("body")[0];
var i = document.createElement("img");
i.src = imgSrc;
i.style.setProperty("display", "none");
i.onload = function() {
ctx.drawImage(i, 0, 0);
}
b.appendChild(i);

window.doIt = function() {
ctx.globalCompositeOperation = "source-in";

ctx.fillStyle = "#ffffff";
ctx.fillRect(0, 0, 600, 200);
}

reference

关于javascript - 使用Canvas将不透明像素变成白色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8386048/

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