日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

如何将一个彩色图像转换成黑白图像

發(fā)布時(shí)間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何将一个彩色图像转换成黑白图像 小編覺(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):

[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


當(dāng)然了這是一個(gè)好的方法,如果需要更簡(jiǎn)單的做到圖像的色彩轉(zhuǎn)換還可以使用ColorMatrix類

總結(jié)

以上是生活随笔為你收集整理的如何将一个彩色图像转换成黑白图像的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。