c# 将图片变黑白

public Bitmap WhiteAndBlack(System.Drawing. Bitmap image)

        {

            //原来图片的长度

            int width = image.Width;

            //原来图片的高度

            int height = image.Height;

            //改变色素

            //横坐标

            for (int x = 0; x < width; x++)

            {

                //纵坐标

                for (int y = 0; y < height; y++)

                {

                    //获得坐标(x,y)颜色

                    Color color = image.GetPixel(x, y);

                    //获得该颜色下的黑白色

                    int value = (color.R + color.G + color.B) / 3;

                    //设置颜色

                    image.SetPixel(x, y, Color.FromArgb(value, value, value));

                }

            }

            return image;

        }

调用代码:

pictureBox1.Image = WhiteAndBlack((System.Drawing.Bitmap)pictureBox1.Image);

原图:

黑白图:


C#中,将图片转换成黑白图片可以通过处理图像的每个像素来实现。具体的方法是将彩色图片的每个像素的颜色值转换成灰度值。灰度值可以通过将RGB颜色分量按一定比例加权求和来计算得出。一个常见的转换公式是: 灰度 = 0.299 * 红色分量 + 0.587 * 绿色分量 + 0.114 * 蓝色分量 你可以使用.NET Framework中的System.Drawing命名空间中的类来操作图像。以下是一个简单的示例代码,展示如何使用C#将一个Bitmap对象转换为黑白图片: ```csharp using System; using System.Drawing; public Bitmap ConvertToGrayscale(Bitmap original) { // 创建一个与原始图片同样大小的新图片,用于存放黑白图片 Bitmap grayscale = new Bitmap(original.Width, original.Height); // 创建一个Graphics对象来处理图像 using (Graphics graphics = Graphics.FromImage(grayscale)) { // 创建一个ColorMatrix,用于定义转换图像的色彩模式 ColorMatrix colorMatrix = new ColorMatrix( new float[][] { new float[] {.3f, .3f, .3f, 0, 0}, new float[] {.59f, .59f, .59f, 0, 0}, new float[] {.11f, .11f, .11f, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1} }); // 创建ImageAttributes对象,并将其颜色矩阵设置为上面定义的矩阵 ImageAttributes attributes = new ImageAttributes(); attributes.SetColorMatrix(colorMatrix); // 绘制原始图片到新创建的Bitmap中,应用灰度转换 graphics.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height), 0, 0, original.Width, original.Height, GraphicsUnit.Pixel, attributes); } // 返回处理后的黑白图片 return grayscale; } ``` 使用上述代码时,你只需传递一个Bitmap对象给`ConvertToGrayscale`函数,它将返回对应的黑白图片。注意,这段代码需要在支持System.Drawing的环境中运行,比如Windows窗体应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值