C#实现把彩色图片灰度化代码分享
彩色图片转为灰度图的公式如下:
gray(i,j)=0.299*Red(i,j)+0.587*Green(i,j)+0.114*Blue(i,j)
其中gray(i,j)为转化后的灰度值 (i,j)为像素点的位置。
源代码如下:
publicstaticBitmapChangeGray(Bitmapb)
{
BitmapDatabmData=b.LockBits(newRectangle(0,0,b.Width,b.Height),ImageLockMode.ReadWrite,
PixelFormat.Format24bppRgb);
intstride=bmData.Stride;//扫描的宽度
unsafe
{
byte*p=(byte*)bmData.Scan0.ToPointer();//获取图像首地址
intnOffset=stride-b.Width*3;//实际宽度与系统宽度的距离
bytered,green,blue;
for(inty=0;y<b.Height;++y)
{
for(intx=0;x<b.Width;++x)
{
blue=p[0];
green=p[1];
red=p[2];
p[0]=p[1]=p[2]=(byte)(.299*red+.587*green+.114*blue);//转换公式
p+=3;//跳过3个字节处理下个像素点
}
p+=nOffset;//加上间隔
}
}
b.UnlockBits(bmData);//解锁
returnb;
}热门推荐
10 五一公司放假祝福语简短
11 追星女孩的祝福语简短
12 给长辈端午祝福语 简短
13 生日祝福语有诗意简短
14 团圆日祝福语简短
15 中秋商务祝福语简短最新
16 温暖文艺简短祝福语短句
17 男孩上学祝福语简短的
18 入住酒店文案祝福语简短