Posted by Andy Bailey at 31 August, 2007,
6:30 pm
I just read a wicked tutorial on DiscoMoose on how to add text onto an existing png file and now I'm ready to make my next widget! it's going to be a custom link box with a variety of button styles to choose from. Choose any text and the button will be displayed with the text on there.
It might save a lot of trouble for newbies who don't have experience in coding or if someones best image app is MSPaint!
here's my first test to see if I could run the code..

it is called with http://www.fiddyp.co.uk/internal/testingphp/png.php?text=woot!
here is the code for png.php
PHP:
-
// load the image from the file specified:
-
-
$im = imagecreatefrompng("button.png");
-
// if there's an error, stop processing the page:
-
if(!$im)
-
{
-
-
}
-
// define some colours to use with the image
-
$yellow = imagecolorallocate($im, 255, 255, 0);
-
$black = imagecolorallocate($im, 0, 0, 0);
-
// get the width and the height of the image
-
$width = imagesx($im);
-
$height = imagesy($im);
-
// draw a black rectangle across the bottom, say, 20 pixels of the image:
-
//imagefilledrectangle($im, 0, ($height-20) , $width, $height, $black);
-
// now we want to write in the centre of the rectangle:
-
$font = 4; // store the int ID of the system font we're using in $font
-
$text = $_GET['text']; // store the text we're going to write in $text
-
// calculate the left position of the text:
-
$leftTextPos =
( $width - imagefontwidth
($font)*
strlen($text) )/
2;
-
// finally, write the string:
-
imagestring($im,$font,$leftTextPos-1, $height-35,$text,$black);
-
imagestring($im, $font, $leftTextPos, $height-36, $text, $yellow);
-
-
// output the image
-
// tell the browser what we're sending it
-
Header('Content-type: image/png');
-
// output the image as a png
-
imagepng($im);
-
// tidy up
-
imagedestroy($im);
yey!
Popularity: 11% [?]