温馨提示×

c# drawing如何实现图像滤镜效果

c#
小樊
82
2024-09-10 07:42:27
栏目: 编程语言

在C#中,可以使用System.Drawing命名空间中的类和方法来实现图像滤镜效果。以下是一个简单的示例,展示了如何使用C#实现图像的灰度滤镜效果:

using System;
using System.Drawing;
using System.Drawing.Imaging;

namespace ImageFilterExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 加载原始图像
            Bitmap originalImage = new Bitmap("input.jpg");

            // 创建一个新的Bitmap对象,用于存储处理后的图像
            Bitmap filteredImage = new Bitmap(originalImage.Width, originalImage.Height);

            // 遍历原始图像的每个像素
            for (int y = 0; y< originalImage.Height; y++)
            {
                for (int x = 0; x< originalImage.Width; x++)
                {
                    // 获取当前像素的颜色
                    Color pixelColor = originalImage.GetPixel(x, y);

                    // 计算灰度值
                    int grayValue = (int)(pixelColor.R * 0.3 + pixelColor.G * 0.59 + pixelColor.B * 0.11);

                    // 创建一个新的灰度颜色
                    Color grayColor = Color.FromArgb(grayValue, grayValue, grayValue);

                    // 将新的灰度颜色设置为处理后的图像的当前像素
                    filteredImage.SetPixel(x, y, grayColor);
                }
            }

            // 保存处理后的图像
            filteredImage.Save("output.jpg", ImageFormat.Jpeg);
        }
    }
}

这个示例中,我们首先加载了一张名为input.jpg的原始图像。然后,我们创建了一个新的Bitmap对象,用于存储处理后的图像。接下来,我们遍历原始图像的每个像素,获取它们的颜色,并计算灰度值。最后,我们将新的灰度颜色设置为处理后的图像的当前像素,并保存处理后的图像。

这个示例仅展示了如何实现灰度滤镜效果。要实现其他滤镜效果,可以修改计算像素颜色的方法。例如,你可以实现一个高斯模糊滤镜,或者一个锐化滤镜等。

0