C#实现,黑白照片的代码,联想可以实现老照片效果

本文介绍了一种将彩色BMP图像转换为灰度图像的方法。通过获取每个像素的RGB值,并采用特定公式计算出灰度值,最终实现了图像的灰度化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

System.Drawing.Bitmap   myBitmap   = new Bitmap(this.pictureBox1.Image);
   
   for(int   Xcount   =   0;Xcount<myBitmap.Width;Xcount++)  
   {  
    for(int   Ycount=   0;Ycount<myBitmap.Height;Ycount++)  
    {    
     Color   rgb5   =   myBitmap.GetPixel(Xcount,   Ycount);  
     byte   bBlue   =rgb5.B;  
     byte   bRed   =rgb5.R;  
     byte   bGreen   =rgb5.G; 
     int   Y=(bBlue+bRed+bGreen)/3;  
     //int   Y   =   (9798   *   bRed   +   19235   *   bGreen   +   3735   *   bBlue)/32768   ;  
     Color NewColor   =   Color.FromArgb(Y,   Y,   Y);
     myBitmap.SetPixel(Xcount,Ycount,NewColor);
    }  
   }  
   myBitmap.Save(@"c:\1.jpg");  


彩色BMP档转成灰度    
       
   
  作者:   cww     
       
  将RGB想成3D之X,Y,Z轴,则BMP的RGB为(r,g,b)与座标(Y,Y,Y)距离最小时的Y即为灰度值    
  Y     =     0.29900   *   R   +   0.58700   *   G   +   0.11400   *   B    
          整数化    
  Y   =   (   9798*R   +   19235*G   +     3735*B)   /   32768    
  RGB(Y,   Y,   Y)就可以了     
       
灰度化只需取三原色的值,然后进行平均就可以了。

转载于:https://www.cnblogs.com/sosoli/archive/2007/07/16/819411.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值