ID:               39353
 User updated by:  seth at pricepages dot org
 Reported By:      seth at pricepages dot org
 Status:           Open
 Bug Type:         GD related
 Operating System: Mac 10.4
 PHP Version:      5CVS-2006-11-02 (snap)
 Assigned To:      pajoye
 New Comment:

Oh! No, I didn't realize imagesavealpha() existed. Why is 
saving the alpha a separate function? Shouldn't it be default?


Previous Comments:
------------------------------------------------------------------------

[2006-11-04 17:45:05] seth at pricepages dot org

I am simply trying to enlarge the original image. I can't find 
a work-around in PHP, but I can create the image in Adobe 
Photoshop.

This is what I'm attempting to create:
http://pricepages.org/temp/partialTrans2.png

By the way, this image is the outline of Bermuda. :)

------------------------------------------------------------------------

[2006-11-04 17:42:49] [EMAIL PROTECTED]


Another thing you may not know is how to preserve the alpha channel
information on save:

http://blog.thepimp.net/misc/bug39353_with_alpha.png

you have to use imagesavealpha($img,true); before calling imagepng.



------------------------------------------------------------------------

[2006-11-04 17:26:18] [EMAIL PROTECTED]

"I thought that a color with alpha = 127 will produce the 
same results as a color marked as transparent. I want the 
contents of $small to overwrite everything in $img. This is 
not correct?"

But this color (imagecolortransparent($small)) *IS* the transparent
color and is ignored on copy.

http://blog.thepimp.net/misc/bug39353_out.png is it not what you
expect?

If not, provide an image to show what you expect.

------------------------------------------------------------------------

[2006-11-04 17:11:55] seth at pricepages dot org

Also, if you alter the transparency of a color to be 64, and 
you fill the image with that color, shouldn't the final 
image have a transparency of 64?

imagecolorsforindex() gives the correct alpha value, but the 
"true color" PNG produced in my browser has no partial 
transparency. (it is all opaque)

The code that I am using looks like this:
...
$img = imagecreatetruecolor($width, $height);
$red = imagecolorallocatealpha($img, 255,0,0, 64);
imagefill($img, 0,0, $red);
imagealphablending($img, false);

/*
var_dump(imagecolorsforindex($img, imagecolorat($img, 
0,0)));
exit;
//*/

header('Content-Type: image/png');
...

------------------------------------------------------------------------

[2006-11-04 17:01:40] seth at pricepages dot org

I thought that a color with alpha = 127 will produce the 
same results as a color marked as transparent. I want the 
contents of $small to overwrite everything in $img. This is 
not correct?

The "bug#1" and "bug#2" that I wrote were not intended to be 
links, they were just supposed to show that I believe there 
are two bugs at work here. This web site turned them into 
links.

To reproduce the second bug without changing the first, 
alter my code to look like this:

...
$img = imagecreatetruecolor($width, $height);
$red = imagecolorallocate($img, 255,0,0);
imagecolortransparent($img, $red);
imagefill($img, 0,0, $red);

imagecopyresized($img, $small, 0,0, 0,0, $width, $height, 
$srcW, $srcH);
...

The background is supposed to be transparent, but where 
$small has partial transparency, $img becomes fully opaque. 
The final image should have partial transparency around the 
object, but it does not.

------------------------------------------------------------------------

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/39353

-- 
Edit this bug report at http://bugs.php.net/?id=39353&edit=1

Reply via email to