【发布时间】:2012-02-28 02:45:51
【问题描述】:
我有一个black heart PNG image 我想用不同的颜色显示。如何使用 javascript/css/jquery 更改心脏的颜色?
我正在尝试做一名衬衫设计师。所以背景是衬衫,心是印花设计(以及其他形状)。
附: 我知道这已经是重复的,但似乎没有任何帮助的解决方案。希望你们能帮助我,如果你们已经这样做了。非常感谢!
解决方案更新:
解决方案是使用画布。找到我的解决方案here。 代码如下:
<h4>Original Image</h4>
<img id="testImage" src='black-heart.png'/>
<h4>Image copied to canvas</h4>
<canvas id="canvas" width="128" height="128"></canvas>
<h4>Modified Image copied to an image tag</h4>
<img id="imageData"/>
<script>
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d"),
image = document.getElementById("testImage");
ctx.drawImage(image,0,0);
var imgd = ctx.getImageData(0, 0, 128, 128),
pix = imgd.data,
uniqueColor = [0,0,255]; // Blue for an example, can change this value to be anything.
// Loops through all of the pixels and modifies the components.
for (var i = 0, n = pix.length; i <n; i += 4) {
pix[i] = uniqueColor[0]; // Red component
pix[i+1] = uniqueColor[1]; // Blue component
pix[i+2] = uniqueColor[2]; // Green component
//pix[i+3] is the transparency.
}
ctx.putImageData(imgd, 0, 0);
var savedImageData = document.getElementById("imageData");
savedImageData.src = canvas.toDataURL("image/png");
</script>
【问题讨论】:
-
你想要一个像悬停黑色图像这样的效果,它应该变成红色。类似的东西?
-
为什么不只制作 2 张不同的图像并使用 css 来完成其余的工作?
-
@Dave:类似的东西,但不是悬停。我试图将 png 图像放在衬衫上(衬衫颜色可能不同)并让用户选择设计的颜色(在本例中为心形)。
-
@skyrel:我认为这样做效率低下。我希望能够将其更改为 20 多种颜色。 :)
-
由于您没有提及您可能看过哪些,请参阅:stackoverflow.com/questions/4298323/…
标签: javascript jquery css image png