Ler imagem bmp

Tenho um trabalho onde preciso abrir uma imagem e ler os bits dela, para poder informar o size, widt, heigh, a palheta de cores…
Para abrir a imagem eu usei o comando

BufferedImage imagem = ImageIO.read(new File("imagem.bmp"));

O problema é que não sei como ler os dados dela agora que aberto, como se fosse em texto.
Alguem sabe como faz ae =]
valeu

veja na documentação da classe:
http://download.oracle.com/javase/6/docs/api/java/awt/image/BufferedImage.html

imagem.getWidth(); imagem.getHeight();

e se não me engano vc pega a palheta de cores atraves do getRaster();
tem q dar uma lida na documentação q lah fala ^^

então, eu vi essas funções getWidth e getHeight, mas meu professor quer que eu leia todos os bits da imagem, e pelos bits eu veja os dados dela, por isso eu queria poder ver ela em um modo texto, ou algo parecido.

eu precisava ler um arquivo mais ou menos assim, só que todo em numeros

BitmapFileHeader.Type = 19778
BitmapFileHeader.Size = 3118
BitmapFileHeader.Reserved = 0
BitmapFileHeader.Reserved2 = 0
BitmapFileHeader.OffsetBits = 118
BitmapInfoHeader.Size = 40
BitmapInfoHeader.Width = 80
BitmapInfoHeader.Height = 75
BitmapInfoHeader.Planes = 1
BitmapInfoHeader.BitCount = 4
BitmapInfoHeader.Compression = 0
BitmapInfoHeader.SizeImage = 3000
BitmapInfoHeader.XpelsPerMeter = 0
BitmapInfoHeader.YpelsPerMeter = 0
BitmapInfoHeader.ColorsUsed = 16
BitmapInfoHeader.ColorsImportant = 16
ColorTable
R G B Unused
84 252 84 0
252 252 84 0
84 84 252 0
252 84 252 0
84 252 252 0
252 252 252 0
0 0 0 0
168 0 0 0
0 168 0 0
168 168 0 0
0 0 168 0
168 0 168 0
0 168 168 0
168 168 168 0
84 84 84 0
252 84 84 0
.
Bitmap data .