#21763 [Opn->Bgs]: imagecolortransparent &/or imagecolorallocate not working with 2- and 4-bit png
| From: | iliaa@php.net | Date: | Tue, 21 Jan 2003 00:57:04 +0000 |
| Subject: | #21763 [Opn->Bgs]: imagecolortransparent &/or imagecolorallocate not working with 2- and 4-bit png | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-30752@lists.php.net to get a copy of this message | ||
ID: 21763
Updated by: iliaa@php.net
Reported By: tuxedobob@mac.com
-Status: Open
+Status: Bogus
Bug Type: GD related
Operating System: Mac OS X 10.2.3
PHP Version: 4.3.0
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
Then you write a function to generate you a color list of the image and
use that. This is NOT a PHP bug.
Previous Comments:
------------------------------------------------------------------------
[2003-01-20 18:32:42] tuxedobob@mac.com
Oops. I think I should have changed this back to "open".
------------------------------------------------------------------------
[2003-01-20 18:27:06] tuxedobob@mac.com
Actually, this particular case was a simplification of what I'm
eventually trying to accomplish. What I really want is the black in any
image to be transparent when the image is copied, and I cannot
guarantee that a given pixel (such as 0,0) will be black among the set
of images I intend to work with.
As for the documentation, it states that "imagecolorallocate() returns
a color identifier representing the color composed of the given RGB
components". If this is to be used _only_ for retrieving the index of
_new_ colors, the documentation should say as much. (What the
"allocate" part means is ambiguous. What actually gets allocated, the
name or the color? Could be either or both.)
It sounds like what I really want to do is this:
imagecolortransparent($image2, imagecolorexact($image2, 0, 0, 0) );
But what happens if both blacks (index values 2 and 3) are used? I
suppose this requires either some weird and/or thorough manipulations
of the image and its colors, or that these functions consider the
possibility that there may be more than one index with a given color.
------------------------------------------------------------------------
[2003-01-20 17:06:30] iliaa@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
You are making an existing color transparent therefor you don't need to
do ImageColorAllocate(). Simply do imagecolorat() on the pixel with the
color you wish to make transparent and use the return value as the 2nd
argument to imagecolortransparent().
In your particular case this can be done with:
$black = ImageColorAt($image2, 0, 0);
------------------------------------------------------------------------
[2003-01-20 15:51:18] sniper@php.net
When you give feedback, please DO NOT USE the page behind the 'Add
Comment' link!!
------------------------------------------------------------------------
[2003-01-20 12:20:57] tuxedobob@mac.com
I'm using the bundled library. And since there seems to be no way to
upload them (even though they're about 5K total), I'll just put the
images here:
Orc: http://homepage.mac.com/tuxedobob/Orc.png
Board: http://homepage.mac.com/tuxedobob/Board.png
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/21763
--
Edit this bug report at http://bugs.php.net/?id=21763&edit=1