C#實現把彩色圖片灰階化代碼分享

來源:互聯網
上載者:User

標籤:寬度   deb   位置   間隔   跳過   hang   完整   線性   sha   

彩色圖片轉為灰階圖的公式如下:


代碼如下:


gray(i,j) = 0.299 * Red(i,j)+0.587*Green(i,j)+0.114*Blue(i,j)

其中gray(i,j) 為轉化後的灰階值  (i,j)為像素點的位置。

原始碼如下:

public static Bitmap ChangeGray(Bitmap b) {  BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite,   PixelFormat.Format24bppRgb);  int stride = bmData.Stride;   // 掃描的寬度  unsafe  {   byte* p = (byte*)bmData.Scan0.ToPointer(); // 擷取映像首地址   int nOffset = stride - b.Width * 3;  // 實際寬度與系統寬度的距離   byte red, green, blue;   for (int y = 0; y < b.Height; ++y)   {    for (int x = 0; x < b.Width; ++x)    {     blue = p[0];     green = p[1];     red = p[2];     p[0] = p[1] = p[2] = (byte)(.299 * red + .587 * green + .114 * blue); // 轉換公式     p += 3;  // 跳過3個位元組處理下個像素點    }    p += nOffset; // 加上間隔   }  }  b.UnlockBits(bmData); // 解鎖  return b; } 

除聲明外, 跑步客文章均為原創,轉載請以連結形式標明本文地址
  C#實現把彩色圖片灰階化代碼分享

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23669.html






相關內容C#實現動態資料繪圖graphic的方法樣本C#操作word的方法樣本C#實現的AES加密解密完整執行個體C#實現順序表(線性表)完整執行個體
winform實現建立最前端表單的方法C#中const用法詳解C#定時關閉表單執行個體C#實現appSettings節點讀取與修改的方法

C#實現把彩色圖片灰階化代碼分享

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.