程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> c#如何將一個彩色圖像轉換成黑白圖像

c#如何將一個彩色圖像轉換成黑白圖像

編輯:關於C#
 

彩色圖像轉換為黑白圖像時需要計算圖像中每像素有效的亮度值,通過匹配像素

亮度值可以輕松轉換為黑白圖像。

計算像素有效的亮度值可以使用下面的公式:

Y=0.3RED+0.59GREEN+0.11Blue

然後使用 Color.FromArgb(Y,Y,Y) 來把計算後的值轉換

轉換代碼可以使用下面的方法來實現:

 


[C#]

public Bitmap ConvertToGrayscale(Bitmap source)

{

Bitmap bm = new Bitmap(source.Width,source.Height);

for(int y=0;y<bm.Height;y++)

{

for(int x=0;x<bm.Width;x++)

{

Color c=source.GetPixel(x,y);

int luma = (int)(c.R*0.3 + c.G*0.59+ c.B*0.11);

bm.SetPixel(x,y,Color.FromArgb(luma,luma,luma));

}

}

return bm;

}

 

 


[VB]

Public Function ConvertToGrayscale(ByVal source As Bitmap) as Bitmap

Dim bm as new Bitmap(source.Width,source.Height)

Dim x

Dim y

For y=0 To bm.Height

For x=0 To bm.Width

Dim c as Color = source.GetPixel(x,y)

Dim luma as Integer = CInt(c.R*0.3 + c.G*0.59 + c.B*0.11)

bm.SetPixel(x,y,Color.FromArgb(luma,luma,luma)

Next

Next

Return bm

End Function


當然了這是一個好的方法,如果需要更簡單的做到圖像的色彩轉換還可以使用ColorMatrix類
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved