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;
}热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下