ID: 24594 Updated by: [EMAIL PROTECTED] Reported By: jakmania at libertysurf dot fr Status: Verified Bug Type: GD related Operating System: All PHP Version: 4.3.3RC2-dev New Comment:
I cannot reproduce it here, using the RC or the head. Do you have a link with the 2 used images? thanks pierre Previous Comments: ------------------------------------------------------------------------ [2003-07-12 02:35:33] jakmania at libertysurf dot fr It's a GD bug, not a PHP one, 'cause I've got the same wrong result in perl :((( ------------------------------------------------------------------------ [2003-07-10 16:07:37] jakmania at libertysurf dot fr Well, It should work with imagefill() just like it does with other functions (imagefilledrectangle...) I mean, just filling with the tile, not only drawing a 'kind' of line or just doing nothing. Someone should check GD. If this problem doesn't occur with the C version itself, or with a Perl interface, then it's a PHP bug, otherwise it's a GD bug. ------------------------------------------------------------------------ [2003-07-10 12:21:31] [EMAIL PROTECTED] Here's my test script: <?php header ("Content-type: image/png"); $im = imagecreatefrompng("basic.png"); /* 200 x 200 */ $tile = imagecreatefrompng("tile.png"); /* 10 x 10 */ imagesettile($im, $tile); // imagefilledpolygon ($im, array(0,0,200,0,200,200,0,200), 4, IMG_COLOR_TILED); // Works // imagefilledrectangle ($im, 10,10,190,190, IMG_COLOR_TILED); // Works imagefill($im,10,10,IMG_COLOR_TILED); // Does not work? imagepng($im); ?> But when I used imagefill(), it only draw one line in the top with the tile and the tile image was somewhat scaled down..(I'm not sure if it's supposed to work like this? :) # file tile.png tile.png: PNG image data, 10 x 10, 8-bit/color RGB, non-interlaced # file basic.png basic.png: PNG image data, 200 x 200, 8-bit/color RGB, non-interlaced ------------------------------------------------------------------------ [2003-07-10 11:59:16] jakmania at libertysurf dot fr Description: ------------ If you "imagesettile" on an image created through "imagecreate" then use "imagefill" and "IMG_COLOR_TILED" as color as explained in the documentation, it's fine. But if the basic image is not created on the fly, eg. it is imported through "imagecreatefromXXX" then your "tile image" won't be apply on that image :-) NB: any version of GD, even the bundled one. See an example of NOT working code below. Thanx Reproduce code: --------------- <?php header ("Content-type: image/png"); $im = imagecreatefrompng("basic.png"); /* 200 x 200 */ $im = imagecreatefrompng("tile.png"); /* 10 x 10 */ imagesettile($im, $tily); imagefill($im,110,90,IMG_COLOR_TILED); imagepng($im); imagedestroy($im); ?> Expected result: ---------------- basic.png (a map in fact) tiled on a delimited area (a country). Actual result: -------------- Just the basic image (basic.png), not tiled at all. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=24594&edit=1