http://www.perlmonks.org?node_id=706804


in reply to Re: BMP file manipulation
in thread BMP file manipulation

Dear Tachyon
Thank you for your very helpful example. I am trying to adapt it my own needs and I am struggling with parts 4 and 5 in your example.

I am working with images that are 1024 high x 1280 wide using 8 bit grey scale to represent each color. So for instance I have used the following to get the color table:
<c> my @rgbQuad = wq ( rgbBlue rgbGreen rgbRed rgbReserved ); my @rgb_dat = unpack "LLLL", $data; my %rgbQuadList; @rgbQuadList{@rgbQuad} = @rgb_dat; print "$_\t$rgbQuad{$_}\n" for @rgbQuad; <\c>
to retrieve the rgb color table data. This returns one line of data for the Blue, Green, Red and Reserved colors. What I am not understanding is how to get every instance of this color table by reiterating through $data. I have also tried assigning < BMP > to an array but that does not seem to behave like the standard file handles I am more typically used to.

Secondly I don't understand how to extract the data lines for the image. So my offset is 1078 bits. According to your calculation, and using an 8 bit pixel assignment, I need to capture 10242 bytes per line for my bit maps. How do I set this for unpack?

Thank you for taking the time to answer my questions.

MadraghRua
yet another biologist hacking perl....