如何在C#中 灰度图像就是 把Imagelist中某个图像灰度之后再显示在picturebox中

JSYCDFBB 1年前 已收到1个回答 举报

niexv 幼苗

共回答了13个问题采纳率:84.6% 举报

int iType=0;
switch (str)
{
case "黑白效果一":
iType = 0;
break;
case "黑白效果二":
iType = 1;
break;
case "黑白效果三":
iType = 2;
break;
default:
break;
}
try
{
int Height = this.pictureBox1.Image.Height;
int Width = this.pictureBox1.Image.Width;
Bitmap newBitmap = new Bitmap(Width,Height);
Bitmap oldBitmap = (Bitmap)this.pictureBox1.Image;
Color pixel;
for (int x = 0; x < Width; x++)
for (int y = 0; y < Height; y++)
{
pixel = oldBitmap.GetPixel(x,y);
int r,g,b,Result = 0;
r = pixel.R;
g = pixel.G;
b = pixel.B;
//实例程序以加权平均值法产生黑白图像
switch (iType)
{
case 0://平均值法
Result = ((r + g + b) / 3);
break;
case 1://最大值法
Result = r > g r :g;
Result = Result > b Result :b;
break;
case 2://加权平均值法
Result = ((int)(0.7 * r) + (int)(0.2 * g) + (int)(0.1 * b));
break;
}
newBitmap.SetPixel(x,y,Color.FromArgb(Result,Result,Result));
}
this.pictureBox1.Image = newBitmap;

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.025 s. - webmaster@yulucn.com