读取图片像素的具体实例
读取图片像素的具体实例
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:publicstaticshort[][]GetPixs(Bitmapbitmap){intheight=bitmap.H...

复制代码 代码如下:

public static short[][] GetPixs(Bitmap bitmap)

{

int height = bitmap.Height;

int width = bitmap.Width;

byte tempB, tempG, tempR;

short[][] spOriginData = new short[height][];

for (int i = 0; i < height; i++)

{

spOriginData[i] = new short[width];

}

BitmapData dataOut = bitmap.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

int offset = dataOut.Stride - dataOut.Width * 3;

try

{

unsafe

{

byte* pOut = (byte*)(dataOut.Scan0.ToPointer());

for (int y = 0; y < height; y++)

{

for (int x = 0; x < width; x++)

{

tempB = pOut[0];

tempG = pOut[1];

tempR = pOut[2];

double data=0.31 * tempR + 0.59 * tempG + 0.11 * tempB;

if (data > 255)

spOriginData[y][x] = 255;

else

if (data < 0)

spOriginData[y][x] = 0;

else

spOriginData[y][x] = (short)data;

pOut += 3;

}

pOut += offset;

}

bitmap.UnlockBits(dataOut);

}

}

catch

{

}

return spOriginData;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类