ID: 27582
Updated by: sniper@php.net
Reported By: panda dot management at free dot fr
-Status: Suspended
+Status: Wont fix
Bug Type: GD related
Operating System: Windows XP
PHP Version: 4.3.5RC4-dev Mar 14 2004 22:12:48
Assigned To: pajoye
New Comment:
Pierre said this is not fixable.
Previous Comments:
------------------------------------------------------------------------
[2004-03-15 03:19:12] pajoye@php.net
Hello,
Sorry, this function does not work with blending mode. I was forced to
desactivate it. Using a blending mode will result in an infinite loop
and recursive calls with the current implementation (blending over
endlessly). A second case where it fails is when you have a lot of
small open segments (see ext/gd/tests/bug27852_1.phpt).
I cannot fix it before the next php4 and php5 (rc1) release. I have to
rewrite the function.
pierre
------------------------------------------------------------------------
[2004-03-14 21:47:34] panda dot management at free dot fr
Hello,
Using PHP Version 4.3.5RC4-dev Mar 14 2004 22:12:48.
The first described bug is fixed, but we now loose the ability to use a
fill color with an alpha channel.
Reproduce:
**********
<?php
$res=imagecreatetruecolor(100, 100);
imagealphablending($res, 1);
imagesavealpha($res, 0);
$border=imagecolorallocate($res, 150, 0, 0);
$back=imagecolorallocatealpha($res, 0, 255, 0, 100);
$fill=imagecolorallocatealpha($res, 255, 0, 0, 125);
// This fill the image with a very light layer of green
imagefill($res, 0, 0, $back);
// Draw a diagonal
imageline($res, 0, 0, 100, 100, $border);
// This should fill half with a very light layer of red
imagefilltoborder($res, 100, 50, $border, $fill);
imagepng($res, 'bugtest.png');
imagedestroy($res);
echo '<img src="bugtest.png"/>';
?>
Actual result:
**************
imagefilltoborder doesn't take the alpha channel of fill color into
account.
Expected result:
****************
imagefilltoborder (on alpha blending images) should use alpha channel
on the color to fill, IMHO because:
- when using Non Alpha Blending images, it does.
- and imagefill on alphablending images does also.
Additionnal comment:
********************
Thank you Pierre for the quick fix to the first bug!
Hope this sequel will find its solution soon.
See ya!
------------------------------------------------------------------------
[2004-03-12 18:52:27] panda dot management at free dot fr
Description:
------------
Hello!
ImageFillToBorder seems to act strangely (no output) when using alpha
channel (?) on color and / or bordercolor values, on an alphablending
image.
Configuration:
**************
winxp
apache 2.0.48
php 4.3.4 / 4.3.5RC3
gd2 module loaded
Reproduce code:
---------------
<?php
$im = ImageCreateTrueColor(10, 10);
imagealphablending($im, true);
imagesavealpha($im, false);
$bordercolor=ImageColorAllocateAlpha($im, 0, 0, 0, 2);
$color = ImageColorAllocateAlpha($im, 0, 0, 0, 1);
ImageFillToBorder($im, 5, 5, $bordercolor, $color);
?>
Expected result:
----------------
Do work as supposed to, or output some error.
Actual result:
--------------
Actual result:
**************
Browser hangs and output an alert "Document contains no data".
I'm not experienced enough to give you more debug details... but it
obviously break something...
Additionnal comment:
**************
The values that trigger the bug seems to be pretty much random.
You can reproduce the problem with:
$bordercolor=ImageColorAllocateAlpha($im, 0, 254, 0, 0);
$color = ImageColorAllocateAlpha($im, 0, 255, 255, 75);
Or even reproduce it with:
$bordercolor=ImageColorAllocate($im, 0, 254, 0);
$color = ImageColorAllocateAlpha($im, 0, 255, 255, 75);
(wich is much more logical on an alphablending image...)
But odly it works ok with:
$bordercolor=ImageColorAllocateAlpha($im, 0, 0, 0, 0);
$color = ImageColorAllocateAlpha($im, 0, 255, 255, 75);
I can't find any coherence in the problematic values, except that they
involve alpha channel.
If this is a doc problem, or if I missed something, please forgive this
report...
Anyway, long life to php.
Olivier
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27582&edit=1