Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP或Ruby从图像中删除某些颜色?_Php_Ruby - Fatal编程技术网

如何使用PHP或Ruby从图像中删除某些颜色?

如何使用PHP或Ruby从图像中删除某些颜色?,php,ruby,Php,Ruby,假设有三个圆圈:红色,蓝色,黑色 我只想留下黑圈。如何删除红色和蓝色圆圈?如果您知道正在使用的图像格式,您可能会使用该信息来避免通过像素值访问(可能会破坏图像质量),否则请执行类似操作: 以像素数组的形式获取图像 映射到每个像素上,如果它位于某个阈值范围内,则将其设置为背景色,远离要移除的任何颜色 这取决于在任何时候都有一个给定的背景颜色,可以将像素设置为该颜色,并且您可以识别要删除的颜色。如果您知道正在使用的图像格式,您可能会使用该信息来避免通过像素值访问(可能会破坏图像质量),否则,请执行类

假设有三个圆圈:红色,蓝色,黑色


我只想留下黑圈。如何删除红色和蓝色圆圈?

如果您知道正在使用的图像格式,您可能会使用该信息来避免通过像素值访问(可能会破坏图像质量),否则请执行类似操作:

  • 以像素数组的形式获取图像
  • 映射到每个像素上,如果它位于某个阈值范围内,则将其设置为背景色,远离要移除的任何颜色

  • 这取决于在任何时候都有一个给定的背景颜色,可以将像素设置为该颜色,并且您可以识别要删除的颜色。

    如果您知道正在使用的图像格式,您可能会使用该信息来避免通过像素值访问(可能会破坏图像质量),否则,请执行类似的操作:

  • 以像素数组的形式获取图像
  • 映射到每个像素上,如果它位于某个阈值范围内,则将其设置为背景色,远离要移除的任何颜色

  • 这取决于在任何时候都有一个给定的背景颜色,可以将像素设置为该颜色,并且您可以确定要删除的颜色。

    因为您已经要求PHP解决方案:

    • 首先,使用或其他图像格式的类似功能加载图片
    • 然后,使用和获取图像的大小
    • 现在,您可以通过什么在所有像素上循环

      for ($i = 0; $i < $imageWidth; $i++) {
          for ($j = 0; $j < $imageHeight; $j++) {
              // check color and replace
          }
      }
      
      ($i=0;$i<$imageWidth;$i++)的
      {
      对于($j=0;$j<$imageHeight;$j++){
      //检查颜色并更换
      }
      }
      
    • 最后,使用获取颜色(检查颜色是否在特定范围内,不要仅将黑色视为好颜色,还应将红色、绿色和蓝色的每个值大于等于250的所有颜色视为好颜色)

    • 。。。并设置颜色
    • 现在,您可以使用例如保存图像

    既然您要求提供PHP解决方案:

    • 首先,使用或其他图像格式的类似功能加载图片
    • 然后,使用和获取图像的大小
    • 现在,您可以通过什么在所有像素上循环

      for ($i = 0; $i < $imageWidth; $i++) {
          for ($j = 0; $j < $imageHeight; $j++) {
              // check color and replace
          }
      }
      
      ($i=0;$i<$imageWidth;$i++)的
      {
      对于($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新手,谢谢