`

c#将图片转为灰度图片

c# 
阅读更多

public static Image ConvertToGrayScale(Image orginalImage)
{
    Bitmap newImage = new Bitmap(orginalImage);
    BitmapData orginalData = (orginalImage as Bitmap).LockBits(new Rectangle(0, 0, orginalImage.Width, orginalImage.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

    BitmapData newData = (newImage as Bitmap).LockBits(new Rectangle(0, 0, orginalImage.Width, orginalImage.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
    int orginalstride = orginalData.Stride;
    System.IntPtr orginalScan0 = orginalData.Scan0;

    int newstride = newData.Stride;
    System.IntPtr newScan0 = newData.Scan0;
    unsafe
    {
        byte* pOrginal = (byte*)(void*)orginalScan0;
        byte* pNew = (byte*)(void*)newScan0;

        int nOffset = orginalstride - orginalImage.Width * 3;

        byte red, green, blue;

        for (int y = 0; y < orginalImage.Height; ++y)
        {
            for (int x = 0; x < orginalImage.Width; ++x)
            {
                blue = pOrginal[0];
                green = pOrginal[1];
                red = pOrginal[2];

                byte newPixel = Convert.ToByte((blue + red + green) / 3);

                pNew[0] = newPixel;
                pNew[1] = newPixel;
                pNew[2] = newPixel;

                pOrginal += 3;
                pNew += 3;
            }
            pOrginal += nOffset;
            pNew += nOffset;
        }
    }
    (orginalImage as Bitmap).UnlockBits(orginalData);
    (newImage as Bitmap).UnlockBits(newData);
    return newImage;
}
 转自: http://outofmemory.cn/code-snippet/584/c-jiang-tupian-zhuanwei-huidu-tupian
分享到:
评论

相关推荐

    C# 将彩色图片转换为灰度图片

    C# 将彩色图片转换为灰度图片C# 将彩色图片转换为灰度图片C# 将彩色图片转换为灰度图片C# 将彩色图片转换为灰度图片C# 将彩色图片转换为灰度图片

    C#添加图片并转为灰度图

    用C#实现选择添加图片,并转为灰度图,功能很简单,新人练手

    C#中将byte数组转换为8bit灰度图像

    C#中将byte数组转换为8bit灰度图像

    C#实现把彩色图片灰度化代码分享

    彩色图片转为灰度图的公式如下: 代码如下: gray(i,j) = 0.299 * Red(i,j)+0.587*Green(i,j)+0.114*Blue(i,j) 其中gray(i,j) 为转化后的灰度值 (i,j)为像素点的位置。 源代码如下: public ...

    c#把彩色图片变为黑色

    c# winform 彩色 图片 转换 灰色 变灰 灰度 速度 快 转为 safe unsafe 加权 平均值法

    C#基础类库

    压缩图片,图片灰度化,转换为黑白图片,获取图片中的各帧 ImageDown 主要功能,把图片下载到本地 ImageUpload 图片上传并进行缩略图处理 24.网络 NetHelper 25.文件操作类 DirFileHelper FileOperateHelper ...

    C#基类库(苏飞版)

    压缩图片,图片灰度化,转换为黑白图片,获取图片中的各帧 ImageDown 主要功能,把图片下载到本地 ImageUpload 图片上传并进行缩略图处理 24.网络 NetHelper 25.文件操作类 DirFileHelper FileOperateHelper ...

    读取RAW图像并转换为BMP文件

    这是一个读取12位RAW图像,并将其转换为BMP文件的程序,供新手学习使用

    Halcon获取LMI3D相机点云图像及显示

    halcon版本18.11 VS2017 C# 需要LMI传感器或者LMI模拟器版本6.1.28

    MwArray与Mat转换

    这是自己写的快速转换程序。在Matlab的MwArray格式与opencv 的Mat格式进行快速转换以及他们之间的相互转换程序。这个在对大型的矩阵(灰度图像)转换速度非常快。需要matlab和opencv的支持。

    Zebra打印机,中文转ZPL指令的.net实现,替换FNTHEX32.DLL

    先将文本用GDI+做绘图, 在内存中绘制出文本对应的图形, 然后将图形进行像素点取点处理, 取出每一个像素点,进行灰度处理, 按照0-255的灰度值,进行黑白判断, 此处取了一个中间一点的值,180,作为黑白分解点, ...

Global site tag (gtag.js) - Google Analytics