You can do like below to display a image array, but Format8bppIndexed seems not correct, you should modify somewhere to make image looks normal.
int bufferSize = Height * Width;
byte buffer = new Byte;
IntPtr dataPtr = Marshal.AllocHGlobal(bufferSize);
if (GetVideoData(dataPtr, bufferSize, 0))
{
Marshal.Copy(dataPtr, buffer, 0, bufferSize);
int columns = Width;
int rows = Height;
int stride = columns;
Bitmap im = new Bitmap(columns, rows, stride, PixelFormat.Format8bppIndexed, Marshal.UnsafeAddrOfPinnedArrayElement(buffer, 0));
Bitmap resized = new Bitmap(im, new Size(pictureBox.Width, pictureBox.Height));
pictureBox.Image = resized;
}
Marshal.FreeHGlobal(dataPtr);