php - How to check a PNG for grayscale/alpha color type? -


php , gd seem have trouble creating images pngs of type greyscale alpha when using imagecreatefrompng(). results incredibly distorted.

i wondering if knew of way test colour type in order notify user of incompatibility?

example:

original image: http://dl.dropbox.com/u/246391/robin.png
resulting image: http://dl.dropbox.com/u/246391/robin_result.png

code:

<?php  $resource = imagecreatefrompng('./robin.png'); header('content-type: image/png'); imagepng($resource); imagedestroy($resource); 

cheers,

aron

the colour type of png image stored @ byte offset 25 in file (counting 0). if can hold of actual bytes of png file, @ byte 25 (i don't php, don't know how that):

  • 0 - greyscale
  • 2 - rgb
  • 3 - rgb palette
  • 4 - greyscale + alpha
  • 6 - rgb + alpha

the preceding byte (offset 24) gives number of bits per channel. see the png spec more details.

in slight twist png file may have "1-bit alpha" (like gifs) having trns chunk (when colour type 0 2 or 3).


Comments

Popular posts from this blog

unicode - Are email addresses allowed to contain non-alphanumeric characters? -

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -