go to bug id or search bugs for
ImagePNG does not output transparent PNG images when in true-color mode, but does when in paletted mode. Before this gets thrown in the bogus pile as a browser issue - it's not - please download both these files and open them in Photoshop and see whether or not the transparency is recognized.
This issues was previously addressed (http://bugs.php.net/bug.php?id=22323) but appears to be re-broken and still not fixed in the latest version (4.3.6)
$Image = ImageCreateTrueColor(80,40);
$back = ImageColorAllocate($Image,255,255, 0);
$red = ImageColorAllocate($Image,255, 0, 0);
$green = ImageColorAllocate($Image, 0,255, 0);
$black = ImageColorAllocate($Image, 0, 0, 0);
ImageString($Image,5,20,20, 'hello', $black);
//ImageTrueColorToPalette($Image, true, 256);
I expect this:
A red arc, black text on a transparent background. And I do get this if I use the commented-out line above to convert the true color image to a paletted image.
I get this:
A red arc, black text on a yellow (non-transparent) background.
Add a Patch
Add a Pull Request
Correction on the URLs:
Works fine here.
If you're using IE, change to a browser with a working png implementation such as Mozilla Firefox.
I'm not talking browser issues (as I said at the top of my bug report). Please download the said images (or generate them yourself) and open them with an image editor such as Photoshop and tell me whether or not both images open with transparent backgrounds.
There's nothing wrong with either of them. Both works fine here with Mozilla Firefox, gqview, gimp-2.0-pre and Konqueror all compiled against libpng 1.2.5.
Interesting. After a little more testing on available Windows software:
Both images have transparency in:
ImageMagick IMDisplay 1.0, Mozilla 1.6, Opera 7.23
"good" works, "bad" doesn't in:
IE 6, Adobe Photoshop 7, Adobe ImageReady 7, Paint Shop Pro 7
I'm not surprised that IE is broken, but I am surprised that the graphics programs are all broken like that. I'm not sure who to pin the blame on - encoding or decoding (I'm sure you'll leave this as bogus and blame the decoders though ;)