BMP width and height, BinaryReader Learn programming Java

Lesson:

File Management


Exercise:

BMP width and height, BinaryReader 54


Objetive:

reate a java 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


Code:

public class Main
{
	public static void main(String[] args)
	{
		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))
		{
			System.out.println("It seems to be a BMP file");
			myFile.BaseStream.Seek(18, SeekOrigin.Begin);
			width = myFile.ReadInt32();
			height = myFile.ReadInt32();
			System.out.printf("Width: %1$s pixels" + "\r\n", width);
			System.out.printf("Height: %1$s pixels" + "\r\n", height);
		}
		else
		{
			System.out.println("It DOES NOT seem to be a BMP file");
		}

		myFile.Close();
	}
}