前几天找到了bitmap的像素遍历算法,然后写到了项目中去,结果却怎么都不对,一张图像只处理上面的1/3部分,开始我以为是灰度图的原因,改成了rgb图像还是没有变化,接着去看了看那篇文章,发现原来是忘记了一句代码
只贴unsafe代码吧
BitmapData dstdata = dstimg.LockBits(new Rectangle(0, 0, size.Width, size.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
BitmapData Imagedata = FilledImage.LockBits(new Rectangle(0, 0, size.Width, size.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); //将图像放入内存,只读,灰度图
int sride = Imagedata.Stride; // 获取图像跨距宽度 此实验图为960
int dstSride = dstdata.Stride;
unsafe
{
byte* temp = (byte*)Imagedata.Scan0.ToPointer(); //获取图像首地址
byte* dsttemp = (