ITXST.COM

c#修改图片指定颜色的方法

       原理是循环图片的每一个像素点,如果这个像素的颜色和需要替换的颜色相同,那么就用SetPixel(int x, int y, Color color);进行替换。需要用到System.Drawing命名空间,代码如下:

   public static Bitmap CovertColor(Bitmap imgObj, string oldColor, string newColor)
   {
           //转换颜色类型 如把#ffffff转换成Color对象
            var Color1 = ColorTranslator.FromHtml(oldColor);
            var Color2 = ColorTranslator.FromHtml(newColor);

            for (var x = 0; x < imgObj.Width; x++)
            {
                for (var j = 0; j < imgObj.Height; j++)
                {
                    //获取像素的颜色
                    Color pixelColor = imgObj.GetPixel(x, j);
                    if (Color1.ToArgb() == pixelColor.ToArgb())
                    {
                        //设置像素的颜色
                        imgObj.SetPixel(x, j, Color2);
                    }
                }
            }
            return imgObj;
      }