如何在运行时更改Image的颜色

3 c# asp.net image

我想知道有什么方法可以在运行时更改图像颜色.例如,假设我有一个JPG绑定到ASP.Net的Image控件.接下来我有一个下拉列表,它给了我各种颜色选项,如红色,格力等.我现在想要将图像的颜色更改为droprdown列表中选择的颜色.

Mus*_*sis 12

下面是一个加载JPEG的代码示例,将图像中的任何红色像素更改为蓝色,然后在图片框中显示位图:

Bitmap bmp = (Bitmap)Bitmap.FromFile("image.jpg");
for (int x = 0; x < bmp.Width; x++)
{
    for (int y = 0; y < bmp.Height; y++)
    {
        if (bmp.GetPixel(x, y) == Color.Red)
        {
            bmp.SetPixel(x, y, Color.Blue);
        }
    }
}
pictureBox1.Image = bmp;
Run Code Online (Sandbox Code Playgroud)

警告:GetPixel和SetPixel非常慢.如果您的图像很大和/或性能是一个问题,那么在.NET中读取和写入像素的方法要快得多,但这需要更多的工作.