8.21 - BMP width & height, BinaryReader

Objetive

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:

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


Solution

using System;
using System.IO;

public class BmpHeightWidth
{

    public static void Main() 
    {    
        BinaryReader myFile;
        byte b1, b2;
        int width, height;
            
        myFile = new BinaryReader(
            File.Open("example.bmp", FileMode.Open));
        b1 = myFile.ReadByte();
        b2 = myFile.ReadByte();
        
        if ((b1 == 0x42) && (b2 == 0x4D))  
        {
            Console.WriteLine("It seems to be a BMP file");
            myFile.BaseStream.Seek(18, SeekOrigin.Begin);
            width = myFile.ReadInt32();
            height = myFile.ReadInt32();
            Console.WriteLine("Width: {0} pixels", width);
            Console.WriteLine("Height: {0} pixels", height);
        }
        else
            Console.WriteLine("It DOES NOT seem to be a BMP file");
          
        myFile.Close();
    }
}


Popular Posts