#24594 [Ver]: IMG_COLOR_TILED and imagefill not working with all images
| From: | jakmania at libertysurf dot fr | Date: | Mon, 14 Jul 2003 17:27:51 +0000 |
| Subject: | #24594 [Ver]: IMG_COLOR_TILED and imagefill not working with all images | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-43964@lists.php.net to get a copy of this message | ||
ID: 24594
User updated by: jakmania at libertysurf dot fr
Reported By: jakmania at libertysurf dot fr
Status: Verified
Bug Type: GD related
Operating System: All
PHP Version: 4.3.3RC2-dev
New Comment:
Hi Pierre,
Here are two images I've got the bug with:
http://www.bantu.ovh.org/images/basic.png
http://www.bantu.ovh.org/images/tile.png
sometimes my host is down :(, so try later in case
And the code is:
<?php
header ("Content-type: image/png");
$im = imagecreatefrompng("basic.png"); /* 150 x 150 */
$tily = imagecreatefrompng("tile.png"); /* 10 x 10 */
imagesettile($im, $tily);
imagefill($im,100,75,IMG_COLOR_TILED);
imagepng($im);
imagedestroy($im);
?>
I just get a dotted line (y=75)
Waiting for better news. Thanks
Jack
Previous Comments:
------------------------------------------------------------------------
[2003-07-13 15:22:19] pajoye@php.net
I cannot reproduce it here, using the RC or the head. Do you have a
link with the 2 used images?
thanks
pierre
------------------------------------------------------------------------
[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] sniper@php.net
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