PHP Source:

<?php
// CHXO labelgen -- converts a string to a PNG image, mostly to camoflage email addys on websites
// Homepage: http://chxo.com/berylium/software/labelgen.html
//
// 2003-04-14 -- initial version
// 2003-04-15 -- added GPL and showsource, no antialiasing at 10 pixels or less

// TODO:
//  i18n testing and a unicode font
//  image cache subsystem
//  convert to free fonts??? help!

/*
labelgen.php -- text-to-PNG-image converter using PHP
Copyright (C) 2003 by Chris Snyder (csnyder@chxo.com)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

// setup
$fontpath"/home/chxo/http/labelgen/";
//$fontpath= "/home/csnyder/files/websites/chxo.com/http/labelgen/";
$font$_REQUEST['font'];
$textval$_REQUEST['textval'];
$size$_REQUEST['size'];
$padding$_REQUEST['padding'];
$bgcolor$_REQUEST['bgcolor'];
$textcolor$_REQUEST['textcolor'];
$transparent$_REQUEST['transparent'];
$showsource$_REQUEST['showsource'];

// defaults
if ($font==""$font="ARIAL.TTF";
if (
$textval==""$textval="The quick brown dog jumped over the lazy fox@spammer.com";
if (
$size==""$size12;
if (
$padding==""$padding2;
if (
$bgcolor==""$bgcolor"f0f0f0";
if (
$textcolor==""$textcolor"000000";
if (
$transparent==""$transparent0;
if (
$size>10$antialias1;
else 
$antialias0;

// setup pt. 2
$fontfile$fontpath.$font;

// geometry
$boximageftbbox$size0$fontfile$textval, array());
$boxwidth$box[4];
$boxheightabs($box[3]) + abs($box[5]);
$width$boxwidth + ($padding*2) + 1;
$height$boxheight + ($padding*2) + 0;
$textx$padding;
$texty= ($boxheight abs($box[3])) + $padding;
//print "$width x $height ($box[4] x ($box[3] - $box[5]))"; exit;

// create the image
$pngimagecreate($width$height);

// colors
function mkcolor($color){
    
// courtesy simon: http://www.php.net/manual/en/function.imagecolorallocate.php#19576
    
global $png;
    
$color str_replace("#","",$color);
    
$red hexdec(substr($color,0,2));
    
$green hexdec(substr($color,2,2));
    
$blue hexdec(substr($color,4,2));
    
$out imagecolorallocate($png$red$green$blue);
    return(
$out);
    }
$bgmkcolor($bgcolor);
$txmkcolor($textcolor);

// transparency
if ($transparent==1) {
    
$tbgimagecolortransparent($png$bg);
    }

// antialiasing
if (!$antialias) {
    
$tx= ($tx);
    }

// add text
imagefttext$png$size0$textx$texty$tx$fontfile$textval, array());

// send the image
if ($showsource=="") {
    
header("content-type: image/png");
    
imagepng($png);
    }
else {
    print 
"<html>
        <head>
        <title>Labelgen.php</title>
        </head>
        <body>
        <h1>PHP Source:</h1>"
;
    
$sourceshow_source($_SERVER['SCRIPT_FILENAME']);
    print 
"<hr />
        labelgen.php Copyright (C) 2003 by Chris Snyder<br>
        This program comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are welcome
        to redistribute it under certain conditions; please refer to the
        <a href='http://www.gnu.org/licenses/gpl.html'>GNU General Public License</a> for details.
        </body>
        </html>"
;
    }
imagedestroy($png);

?>

labelgen.php Copyright (C) 2003 by Chris Snyder
This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; please refer to the GNU General Public License for details.