1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c# winform 把彩色图片转换为灰色的图片 变灰 灰度图片 速度很快 safe unsafe

c# winform 把彩色图片转换为灰色的图片 变灰 灰度图片 速度很快 safe unsafe

时间:2024-06-06 00:57:01

相关推荐

c# winform 把彩色图片转换为灰色的图片 变灰 灰度图片 速度很快 safe unsafe

把彩色图片转换为灰色的图片,直接用.net接口遍历每个像素点转换的效率非常低,800K的图片65万像素我的电脑要用5分钟,而用了unsafe,速度提高了几千倍,同样的图片只用了0.几秒

附一个常用的遍历像素点转换的代码

构造函数

C#代码 publicTphc(){InitializeComponent();this.pictureBox1.ImageLocation="F:\\黑色头发.jpg";}

按钮单击事件

C#代码 privatevoidbutton3_Click(objectsender,EventArgse){intHeight=this.pictureBox1.Image.Height;intWidth=this.pictureBox1.Image.Width;Bitmapbitmap=newBitmap(Width,Height);BitmapMyBitmap=(Bitmap)this.pictureBox1.Image;Colorpixel;for(intx=0;x<Width;x++)for(inty=0;y<Height;y++){pixel=MyBitmap.GetPixel(x,y);intr,g,b,Result=0;r=pixel.R;g=pixel.G;b=pixel.B;//实例程序以加权平均值法产生黑白图像intiType=2;switch(iType){case0://平均值法Result=((r+g+b)/3);break;case1://最大值法Result=r>g?r:g;Result=Result>b?Result:b;break;case2://加权平均值法Result=((int)(0.7*r)+(int)(0.2*g)+(int)(0.1*b));break;}bitmap.SetPixel(x,y,Color.FromArgb(Result,Result,Result));}this.pictureBox1.Image=bitmap;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。