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(); } }