如何将一个彩色图像转换成黑白图像
生活随笔
收集整理的這篇文章主要介紹了
如何将一个彩色图像转换成黑白图像
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
作者:未知
彩色圖像轉(zhuǎn)換為黑白圖像時(shí)需要計(jì)算圖像中每像素有效的亮度值,通過(guò)匹配像素
亮度值可以輕松轉(zhuǎn)換為黑白圖像。
計(jì)算像素有效的亮度值可以使用下面的公式:
Y=0.3RED+0.59GREEN+0.11Blue
然后使用 Color.FromArgb(Y,Y,Y) 來(lái)把計(jì)算后的值轉(zhuǎn)換
轉(zhuǎn)換代碼可以使用下面的方法來(lái)實(shí)現(xiàn):
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()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
當(dāng)然了這是一個(gè)好的方法,如果需要更簡(jiǎn)單的做到圖像的色彩轉(zhuǎn)換還可以使用ColorMatrix類
總結(jié)
以上是生活随笔為你收集整理的如何将一个彩色图像转换成黑白图像的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 文本的DES加密 MD5散列值 DSA的
- 下一篇: 结合ashx来在DataGrid中显示从