Page 1 of 1

Insert Gif in PNG using GD

Posted: Mon Dec 27, 2004 5:15 am
by snicolas
Hey,

I am creating PNG file from text data.
This is working well.

Now I would like to insert an existing GIF image in my newly created PNG image.

Is this possible?

s

Posted: Mon Dec 27, 2004 5:57 am
by Robert Plank
Yes, you can use ImageCreateFromGIF to create an image based on the GIF and then either put your text in that image, or use imagecopyresized() to copy one to the other, depends on what you want to do exactly. Go look those functions up on PHP.net.

Posted: Mon Dec 27, 2004 6:09 am
by snicolas
sorry, do you have some code example?
s

Posted: Mon Dec 27, 2004 6:17 am
by snicolas
got it working, thanks for advice....

Posted: Mon Dec 27, 2004 6:29 am
by Robert Plank

Code: Select all

<?php

// Create image from GIF
$im = @imagecreatefromgif ("sample.gif");

// Write blue text on the top left corner
$color = imagecolorallocate($im, 0, 0, 255);
imagestring($im, 5, 0, 0, "1234567890abcdefhijklmnopqrstuvwxyz", $color);

// Output as PNG
header("Content-type:image/png");
imagepng($im);

// Clean-up
imagedestroy($im);

?>

Posted: Mon Dec 27, 2004 6:54 am
by snicolas
Thanks Robert,

I have one more question....
I am trying to create an image from a php loop
<?php while{
//insert data here
}
?>

When i do that my last data is correctly inserted, but i am missing all previous rows..
I understand that the PNG actually overwrite itself with latest row found.
Is there a way i can say to add extra "10px" or go to a new row?
ImageTTFText ($im2, 8, 0, 150, 15 + 5 pixel?)

Posted: Mon Dec 27, 2004 8:07 am
by feyd
Moved to Graphics.

Why not create the string you wish to draw first?

Posted: Mon Dec 27, 2004 9:32 am
by Robert Plank
Yeah if you put that whole thing into the loop, it will load the gif over and over each time (BAD).

Create the image from the gif before the loop, then like you said inside the loop do something to increase the Y offset like:

Code: Select all

ImageTTFText ($im2, 8, 0, 150, 15 + (5 * $i++))