public void ReadPixel(Pixel pixel, Byte[] buffer = null) { // determines pixel offset at [x, y] Int32 offset = fastByteX[pixel.X] + fastY[pixel.Y]; // reads the pixel from a bitmap if (buffer == null) { pixel.ReadRawData(bitmapData.Scan0 + offset); } else // reads the pixel from a buffer { pixel.ReadData(buffer, offset); } }