读取图片像素的具体实例
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# Process.Start()找不到系统文件的解决方法
vs1027在X64应用程序下执行process.start()时,OK;但是在X86应用程序下执行process.start(),报错:找不到系统文件,本文就详细的介绍一下解决方法,感兴趣的可以了解一下2023-09-09C#使用DateTime.Now静态属性动态获得系统当前日期和时间
本文主要介绍了C#使用DateTime.Now静态属性动态获得系统当前日期和时间,DateTime结构的Now静态属性只是得到一个系统时间对象,该时间对象不会随着系统时间的变化而变化,如果要动态显示系统时间,可以使用计时器间隔地获取系统时间对象并显示,感兴趣的可以了解一下2024-01-01
最新评论