mr e
03-25-2003, 12:25 AM
This is just something small I threw together to help those people who couldn't figure out how to use this gd library thing :D
I did this on a home server so that's how I'm gonna explain it, otherwise just ask your host to add the gd library. ;)
I did this on Win XP, and I followed TECK's tutorial for installing PHP, Apache, and MySQL.
1) Install/Upgrade to PHP v4.3.2 (RC1 or whatever), I have 4.3.2 RC1
2) Open php.ini and find this line
;extension_dir =
or something like that, uncomment it and change it to the directory you have your extensions in, for me it was
extension_dir = "c:\network\php\extensions"
3) Still in php.ini find this line
;extension=php_gd2.dll
and uncomment it
4) Restart Apache
I assume most of you will just want to add text to a picture so this is how to do it.
Using a .jpg
1) Create a file with this in it
<?
Header("Content-Type: image/jpeg");
$img = ImageCreateFromJpeg("LOCATIONOFIMAGE"); // eg: images/test.jpg or test.jpg
$color = ImageColorClosest($img, 255, 255, 255); // image, rrr, ggg, bbb
ImageString($img, FONTNUMBER, DISTANCEFROMLEFT, DISTANCEFROMTOP, "TEXTTODISPLAY", $color); // the distance is in pixels and the font # is 1 through 5
ImageJpeg($img); // make the image
ImageDestroy($img); // get the image out of memory
?>
Using a .png
1) Create a file with this in it
<?
Header("Content-Type: image/png");
$img = ImageCreateFromPng("LOCATIONOFIMAGE"); // eg: images/test.png or test.png
//a png uses ImageColorAllocate instead of ImageColorClosest like jpeg ueses
$color = ImageColorAllocate($img, 255, 255, 255); // image, rrr, ggg, bbb
ImageString($img, FONTNUMBER, DISTANCEFROMLEFT, DISTANCEFROMTOP, "TEXTTODISPLAY", $color); // the distance is in pixels and the font # is 1 through 5
ImagePng($img); // make the image
ImageDestroy($img); // get the image out of memory
?>
Note: If you wanted to have say...forum stats in this then you would query the stats and then instead of
ImageJpeg($img);
//or
ImagePng($img);
//you would do
ImageJpeg($img, 'FILENAMETOOUTPUT', 100); // last number is the quality
//or
ImagePng($img, 'FILENAMETOOUTPUT');
then you would just do a regulare <img> tag with the image pointing to the FILENAMETOOUTPUT, then do a cron job (i have NO idea how to do [sorry]) to run that script every so often.
For searching purposes: graphic development library
I did this on a home server so that's how I'm gonna explain it, otherwise just ask your host to add the gd library. ;)
I did this on Win XP, and I followed TECK's tutorial for installing PHP, Apache, and MySQL.
1) Install/Upgrade to PHP v4.3.2 (RC1 or whatever), I have 4.3.2 RC1
2) Open php.ini and find this line
;extension_dir =
or something like that, uncomment it and change it to the directory you have your extensions in, for me it was
extension_dir = "c:\network\php\extensions"
3) Still in php.ini find this line
;extension=php_gd2.dll
and uncomment it
4) Restart Apache
I assume most of you will just want to add text to a picture so this is how to do it.
Using a .jpg
1) Create a file with this in it
<?
Header("Content-Type: image/jpeg");
$img = ImageCreateFromJpeg("LOCATIONOFIMAGE"); // eg: images/test.jpg or test.jpg
$color = ImageColorClosest($img, 255, 255, 255); // image, rrr, ggg, bbb
ImageString($img, FONTNUMBER, DISTANCEFROMLEFT, DISTANCEFROMTOP, "TEXTTODISPLAY", $color); // the distance is in pixels and the font # is 1 through 5
ImageJpeg($img); // make the image
ImageDestroy($img); // get the image out of memory
?>
Using a .png
1) Create a file with this in it
<?
Header("Content-Type: image/png");
$img = ImageCreateFromPng("LOCATIONOFIMAGE"); // eg: images/test.png or test.png
//a png uses ImageColorAllocate instead of ImageColorClosest like jpeg ueses
$color = ImageColorAllocate($img, 255, 255, 255); // image, rrr, ggg, bbb
ImageString($img, FONTNUMBER, DISTANCEFROMLEFT, DISTANCEFROMTOP, "TEXTTODISPLAY", $color); // the distance is in pixels and the font # is 1 through 5
ImagePng($img); // make the image
ImageDestroy($img); // get the image out of memory
?>
Note: If you wanted to have say...forum stats in this then you would query the stats and then instead of
ImageJpeg($img);
//or
ImagePng($img);
//you would do
ImageJpeg($img, 'FILENAMETOOUTPUT', 100); // last number is the quality
//or
ImagePng($img, 'FILENAMETOOUTPUT');
then you would just do a regulare <img> tag with the image pointing to the FILENAMETOOUTPUT, then do a cron job (i have NO idea how to do [sorry]) to run that script every so often.
For searching purposes: graphic development library