ID: 27582 Updated by: [EMAIL PROTECTED] 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] [EMAIL PROTECTED] 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
