public Bitmap GetImage( )
{
Bitmap image = null;
// buffer to read image into
byte[] buffer = new byte[768 * 1024];
// request image
int bytesRead = SendAndReceive( new byte[] { (byte) 'I' }, buffer );
if ( bytesRead > 10 )
{
// check for image reply signature
if (
( buffer[0] == (byte) '#' ) &&
( buffer[1] == (byte) '#' ) &&
( buffer[2] == (byte) 'I' ) &&
( buffer[3] == (byte) 'M' ) &&
( buffer[4] == (byte) 'J' ) )
{
// extract image size
int imageSize = System.BitConverter.ToInt32( buffer, 6 );
try
{
// decode image from memory stream
image = (Bitmap) Bitmap.FromStream( new MemoryStream( buffer, 10, imageSize ) );
}
catch
{
image = null;
}
}
}
return image;
}