【发布时间】:2014-07-12 21:16:50
【问题描述】:
在 HTML5 或 Canvas(或任何其他 HTML5 技术)的帮助下,有没有人有一个很好的解决方案来改变非透明区域的颜色。
我用谷歌搜索了很多,找到了一些可以改变图像颜色的解决方案(使用 Canvas),例如,
How do i tint an image with HTML5 Canvas?
Canvas - Change colors of an image using HTML5/CSS/JS?
但这些解决方案也会将透明背景更改为给定颜色(我不想要)。
它是具有透明背景的 stackoverflow png 图像。现在,我想在不影响其透明像素(背景)的情况下更改图像颜色,这样我就可以在 canvas toDataURL 方法的帮助下使用新颜色再次保存图像。
我不确定是否可以使用 HTML5。非常感谢任何帮助。
提前致谢。
*********************已编辑*********************
添加了药丸(胶囊)的新图像。
【问题讨论】:
-
这可能正是您不想要的,但我通常更改图像颜色的方法只是让它变得有点透明,并将背景图像颜色设置为所需的颜色。跨度>
-
@dcclassics:我认为你误解了我的意思。我有一个带有一些透明像素的 png 图像,比如说,一个 mario(卡通人物)png 图像。因为马里奥是一个字符并且有多项式的一面。我们的图像必须包含一些透明的像素。所以现在,我想在不改变透明像素的情况下改变字符(马里奥)的颜色。
-
您可能需要
canvas.getImageData和putImageData,它们允许您使用RGBA 值逐个像素地编辑画布。请参阅this tutorial 了解一下。
标签: javascript html canvas