Proposed exercise
Create a C# program to display the width and the height of a BMP file, using a BinaryReader.
The structure of the header of a BMP file is:
TYPE OF INFORMATION | POSITIONINTHEFILE |
File type (letters BM) | 0-1 |
FileSize | 2-5 |
Reserved | 6-7 |
Reserved | 8-9 |
Start of image data | 10-13 |
Sizeofbitmapheader | 14-17 |
Width (pixels) | 18-21 |
Height (pixels) | 22-25 |
Numberofplanes | 26-27 |
Sizeofeachpoint | 28-29 |
Compression(0=notcompressed) | 30-33 |
Imagesize | 34-37 |
Horizontal resolution | 38-41 |
Verticalresolution | 42-45 |
Sizeofcolortable | 46-49 |
Importantcolorscounter | 50-53 |
Output
Solution
using System;
using System.IO;
public class BmpMesures
{
public static void Main()
{
byte b1, b2;
int width, height;
BinaryReader file =
new BinaryReader( File.Open("test.bmp", FileMode.Open));
b1 = file.ReadByte();
b2 = file.ReadByte();
if (b1 == 0x42 && b2 == 0x4D)
{
file.BaseStream.Seek(18, SeekOrigin.Begin);
width = file.ReadInt32();
height = file.ReadInt32();
Console.WriteLine("Width is of {0} pixels", width);
Console.WriteLine("Height is of {0} pixels", height);
}
else
Console.WriteLine("It not .BMP");
file.Close();
}
}