动态更改图像的颜色

时间:2011-02-08 21:01:09

标签: php javascript

我想知道如果我有一个像enter image description here

这样的图像是否可能

我可以更改图像颜色的某些部分。例如,如果我想要蝴蝶结绿色和现在的红色带黄色条纹,我是否必须制作一个新的图像,或者有一种方法来编程(优雅地)沿着那条线?我只想询问它是否可能,如果是,最好用哪种语言?

请记住,这将是网站上的一项功能。

4 个答案:

答案 0 :(得分:1)

图像的方式并不容易。你无法告诉计算机哪个部分是弓形,哪个部分是条纹,哪个部分是盒子。但是,如果你预先着色它们,你可以很容易地使用GD库或imagemagick进行颜色替换。你用PHP做到这一点。以下是一些如何做到这一点的例子,我个人会去imagemagick路线。

How can I replace one color with another in a png 24 alpha transparent image with GD

http://www.imagemagick.org/Usage/color_basics/#replace (这个例子甚至有一个与用例相似的礼盒,呵呵)

答案 1 :(得分:0)

尝试将您想要的部分保持透明。然后,使用第二种背景颜色将div设置为悬停状态。

答案 2 :(得分:0)

你可以:

  • 使用索引颜色图像并更改调色板中的颜色。

  • 使用@ MT的建议,虽然它有多种颜色和锯齿状区域无法控制。

  • 选择控制点并通过它们填充(“填充”)图像 - 使用铲斗工具的编程版本。

  • 使用@ profitphp的建议,这是我上一次的建议。

  • 放弃兼容性并使用新的canvas element,但它仍然具有“酷”因素:)

答案 3 :(得分:0)

我认为这是一个基于网络的绘画应用程序;你需要一个人来告诉你这些部件是什么,以及他们想要着色的地方。

然后问题就变成了如何根据用户的请求执行flood fill

我能建议的最好的是使用图像处理库执行洪水填充服务器端 - 将图像传回给用户:

enter image description here

没有javascript功能可以访问图像的像素数据。

修改: Performing flood fill with HTML Canvas