On 23 January 2012 14:34, Matijn Woudt <tijnema@xxxxxxxxx> wrote: > On Mon, Jan 23, 2012 at 3:26 PM, Nicholas Cooper <nicholas@xxxxxxxxxxxxx> wrote: >> On 23 January 2012 13:26, Matijn Woudt <tijnema@xxxxxxxxx> wrote: >>> On Mon, Jan 23, 2012 at 1:51 PM, Nicholas Cooper <nicholas@xxxxxxxxxxxxx> wrote: >>>> Hi everyone, >>>> >>>> I've created an image in RGB from ImageMagick, it's 4 by 4 so I'm >>>> expecting 48 numbers (4*4*3). [width*height*(R,G,B)] >>>> >>>> When I read the file with PHP and unpack it I get between 330 and 333, >>>> I guess this difference is down to headers and end of file data. Is >>>> there anyway to access only the useful image bits, those 48 numbers? >>>> >>>> Thank you, >>>> >>>> Nicholas Cooper >>>> >>> >>> Hi, >>> >>> The easiest way is probably using imagecolorat[1]. Just do a nested >>> for loop over x and y values, and call imagecolorat for each pixel. >>> >>> Matijn >>> >>> [1] www.php.net/imagecolorat >> >> Thank you that does the trick and gives the expected output. I plan >> to be processing a large number of images and have always been wary of >> using the built in image functions for performance reasons. So if >> there is any other solutions I'm welcome to them, or even if someone >> just wants to say that performance is not such an issue any more. > > > If the image you want to process is a simple bitmap (.bmp) file, then > you can easily parse it yourself. Wikipedia has a page on the file > format [1]. > > In short, fopen your file, fseek to 0x000A, read 4 bytes, and parse > them as little-endian (with unpack or so). fseek to that value, and > then you can read 4*4*3 bytes with fseek. That is your RGB data, if it > is in that format ofcourse. If you're not sure which format they are > you might need to parse more of the BMP header, but that's up to you. > > Matijn > > [1] http://en.wikipedia.org/wiki/BMP_file_format Thank you, I haven't quite managed to find the start of my 16 bytes, but I get the idea, so I should be able to get this working after reading more about the format. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php