首页 > 学院 > 开发设计 > 正文

C#彩色图片灰度化算法

2019-11-17 03:15:11
字体:
来源:转载
供稿:网友

C#彩色图片灰度化算法

网上几种算法中速度相对较快的

public static Bitmap MakeGrayscale(Bitmap original){    //create a blank bitmap the same size as original    Bitmap newBitmap = new Bitmap(original.Width, original.Height);    //get a graphics object from the new image    Graphics g = Graphics.FromImage(newBitmap);    //create the grayscale ColorMatrix    System.Drawing.Imaging.ColorMatrix colorMatrix = new System.Drawing.Imaging.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}      });    //create some image attributes    System.Drawing.Imaging.ImageAttributes attributes = new System.Drawing.Imaging.ImageAttributes();    //set the color matrix attribute    attributes.SetColorMatrix(colorMatrix);    //draw the original image on the new image    //using the grayscale color matrix    g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height), 0, 0, original.Width, original.Height, GraphicsUnit.Pixel, attributes);    //dispose the Graphics object    g.Dispose();    return newBitmap;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表