ID: 23808
Comment by: christophe dot bidaux at netcourrier dot com
Reported By: i dot a at signalsystem-bz dot it
Status: Open
Bug Type: GD related
Operating System: Win2k server
PHP Version: 4.3.2RC4
New Comment:
i made new tests with several php versions and i've putted the results
on this page :
http://christophe.bidaux.free.fr/imagecopymerge/imagecopymerge.html
the first image is the original image and the others are made with the
same php program shown at the bottom.
the php version is written in the top-left corner of the images.
only the 4.3.1 version gives me a good result.
i use the binaries as they are and i use the same php.ini for all my
tests.
i run php on an Apache/1.3.20 Server on Windows 98.
Previous Comments:
[2003-06-03 07:35:26] tozz at kijkt dot tv
I experience the same bug on Linux with PHP 4.3.2, on PHP 4.3.1
everything works fine.
Configure line:
'./configure' '--with-apxs' '--with-mysql' '--enable-ftp'
'--with-openssl' '--with-gd' '--enable-bcmath' '--enable-dbase'
'--with-freetype-dir' '--with-ttf' '--with-jpeg-dir=/usr/lib'
'--with-png-dir=/usr/lib' '--with-zlib-dir=/usr/lib/'
The code:
imagecopymerge ($board, $pawn, $w1, $h1, 0, 0, $w, $h, 30);
imagecopymerge ($board, $pawn, $w2, $h2, 0, 0, $w, $h, 30);
imagedestroy ($pawn);
Imagejpeg($board,'',100);
[2003-06-03 02:01:27] i dot a at signalsystem-bz dot it
I putted the images as you requested ..
http://signalsystem.merseine.nu/test/
image1.jpg is the main image;
image2.png is the image that's "slitted" in trasnparency over the
first
image_431.jpg is the result of it in 4.3.1 (nice and good)
image_432.jpg is the result of it in 4.3.2 (wrong and ugly)
[2003-06-01 04:28:05] phpuser at panoramas dot de
I was going to file this as a new bug, but thought i'd rather add it
here, since it's the same basic problem:
After upgrading to 4.3.2, the imagecopymerge function is broken.
Reverting to 4.3.1 removes the error.
My configure line: (unchanged since 4.3.1)
'./configure' '--with-mysql' '--prefix=/mysrv/php' '--enable-ftp'
'--with-apxs=/mysrv/apache/sbin/apxs'
'--with-config-file-path=/mysrv/php-conf' '--disable-pear'
'--enable-track-vars' '--with-gd' '--with-jpeg-dir=/usr/local'
'--with-png-dir=/usr/local' '--with-zlib-dir=/usr/local'
'--disable-cli' '--with-t1lib=/usr/local'
Summary of script function:
- Takes one image A from file (JPEG 24bit).
- generates another image B with same dimensions, 24 bit, and fills it
with 50 percent gray
- (left out: gets a set of imagemap coordinates from a database and
draws them as black outline, white area inside the image B)
- merges image B on top of image A with 40 percent transparency
- returns the result.
Effect of error:
No blending occurs with 4.3.2. Only image B is returned, albeit
"weaker" or "stronger" depending on the transparency setting in
imagecopymerge().
Leaving out the imagecopymerge() command returns the original image A,
as expected.
Moving the coordinates results in a black background being visible
(should be image A).
My unqualified guess:
Looks as if imagecopymerge() takes a black image instead of image A.
Side notes:
replacing imagecopymerge with imagecopymergegray actually returns the
both images overlaid, but with palette image color mixup effects.
Example source code
(requires a jpeg image "test.jpg" of arbitrary size to test)
-- begin code --
$uim = imagecreatefromjpeg("test.jpg")
or die ("Cannot Initialize new GD image stream");
imagealphablending ($uim, TRUE ); # leaving this out changes nothing
fill overlay with gray
$im = imagecreatetruecolor( imagesx($uim) , imagesy($uim) ); #
Overlay-Bild
$migra=imagecolorallocate ($im, 128,128,128);
imagefilledrectangle ( $im , 0,0 , imagesx($im)-1 , imagesy($im)-1 ,
$migra );
# database drawin left out here
imagecopymerge ( $uim, $im, 0, 0, 0, 0, imagesx($uim), imagesy($uim),
40);
header ("Content-type: image/jpeg");
imagejpeg ($uim ,'', 75);
imagedestroy($uim);
imagedestroy($im);
-- end code --
[2003-05-30 08:32:21] [EMAIL PROTECTED]
Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.php.net/how-to-report.php
If you can provide more information, feel free to add it
to this bug and change the s