我需要閱讀的BMP getpixel與速度,但非常低 我用LockBits改善速度
private void LockUnlockBitsExample(Bitmap bmp)
{
Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
System.Drawing.Imaging.BitmapData bmpData =
bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite,
bmp.PixelFormat);
IntPtr ptr = bmpData.Scan0;
int bytes = Math.Abs(bmpData.Stride) * bmp.Height;
rgbValues = new byte[bytes];
System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);
bmp.UnlockBits(bmpData);
}
的這個功能
private Color GetMyPixel(byte[] rgbValues,Bitmap bmp, int x,int y)
{
int index= (bmp.Width*y+x)*3;
Color MyColor = Color.FromArgb(rgbValues[index], rgbValues[index + 1], rgbValues[index + 2]);
return MyColor;
}
,但我的函數的輸出是不同於原來的getpixel
什麼是原始圖像的顏色格式的東西嗎?看起來你的GetMyPixel函數假設圖像是每像素24位。 – sam1589914
我的圖像是24位 – jozi