如何使用PHP或Ruby从图像中删除某些颜色?
假设有三个圆圈:红色,蓝色,黑色如何使用PHP或Ruby从图像中删除某些颜色?,php,ruby,Php,Ruby,假设有三个圆圈:红色,蓝色,黑色 我只想留下黑圈。如何删除红色和蓝色圆圈?如果您知道正在使用的图像格式,您可能会使用该信息来避免通过像素值访问(可能会破坏图像质量),否则请执行类似操作: 以像素数组的形式获取图像 映射到每个像素上,如果它位于某个阈值范围内,则将其设置为背景色,远离要移除的任何颜色 这取决于在任何时候都有一个给定的背景颜色,可以将像素设置为该颜色,并且您可以识别要删除的颜色。如果您知道正在使用的图像格式,您可能会使用该信息来避免通过像素值访问(可能会破坏图像质量),否则,请执行类
我只想留下黑圈。如何删除红色和蓝色圆圈?如果您知道正在使用的图像格式,您可能会使用该信息来避免通过像素值访问(可能会破坏图像质量),否则请执行类似操作:
这取决于在任何时候都有一个给定的背景颜色,可以将像素设置为该颜色,并且您可以识别要删除的颜色。如果您知道正在使用的图像格式,您可能会使用该信息来避免通过像素值访问(可能会破坏图像质量),否则,请执行类似的操作:
这取决于在任何时候都有一个给定的背景颜色,可以将像素设置为该颜色,并且您可以确定要删除的颜色。因为您已经要求PHP解决方案:
- 首先,使用或其他图像格式的类似功能加载图片
- 然后,使用和获取图像的大小
- 现在,您可以通过什么在所有像素上循环
($i=0;$i<$imageWidth;$i++)的for ($i = 0; $i < $imageWidth; $i++) { for ($j = 0; $j < $imageHeight; $j++) { // check color and replace } }
{ 对于($j=0;$j<$imageHeight;$j++){ //检查颜色并更换 } }
- 最后,使用获取颜色(检查颜色是否在特定范围内,不要仅将黑色视为好颜色,还应将红色、绿色和蓝色的每个值大于等于250的所有颜色视为好颜色)
- 。。。并设置颜色
- 现在,您可以使用例如保存图像
- 首先,使用或其他图像格式的类似功能加载图片
- 然后,使用和获取图像的大小
- 现在,您可以通过什么在所有像素上循环
($i=0;$i<$imageWidth;$i++)的for ($i = 0; $i < $imageWidth; $i++) { for ($j = 0; $j < $imageHeight; $j++) { // check color and replace } }
{ 对于($j=0;$j<$imageHeight;$j++){ //检查颜色并更换 } }
- 最后,使用获取颜色(检查颜色是否在特定范围内,不要仅将黑色视为好颜色,还应将红色、绿色和蓝色的每个值大于等于250的所有颜色视为好颜色)
- 。。。并设置颜色
- 现在,您可以使用例如保存图像
- 就可以了。只需执行以下命令:
convert circles.png -channel black -white-threshold 10% circles2.png
你没说怎么处理格林。这个脚本采用了简单的方法,并清除了绿色。事实上,它能清除任何非黑色的东西
库允许您使用Ruby驱动imagemagick。遗憾的是,它在我的发行版中不起作用,所以我无法为您准备一个示例。但是,使用system或backtick来显示命令的效果很好。就可以了。只需执行以下命令:
convert circles.png -channel black -white-threshold 10% circles2.png
你没说怎么处理格林。这个脚本采用了简单的方法,并清除了绿色。事实上,它能清除任何非黑色的东西
库允许您使用Ruby驱动imagemagick。遗憾的是,它在我的发行版中不起作用,所以我无法为您准备一个示例。但是,使用system或backtick命令执行命令效果很好。您试图解决的问题是什么?请告诉我们,你不是在寻找逃避CAPTCHA的方法。+1表示偏执:)你在这里试图解决的问题是什么?请告诉我们,你不是在寻找逃避CAPTCHA的方法。+1因为你偏执:)你好,伊坦,我知道这是一篇老文章,但你能详细说明里面的内容吗//检查颜色并替换吗?我是新来的php Shello Etan,我知道这是一篇老文章,但你能详细说明里面的内容吗//检查颜色并替换?我是php新手,谢谢