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

Reply via email to