Fonts in Webseiten als PHP-Code

Thumbnail Generierung

Mit PHP kann man recht einfach Thumbnails für seine Truetype Schriften erstellen. Das ist eine Methode mit der sich selbst bei großen Schriftsammlungen schnell Ergebnisse erzielen lassen (Die Thumbnails für die Fonts beim FontShack werden auf dieselbe Weise erzeugt)

Zuerst werden die Schriften eingelesen:
$fontdir= "./fonts/";
$dir = opendir($fontdir);
while(false !== ($file = readdir($dir))) {
   if (eregi("\.". "ttf" ."$", $file)) {
         //do something: add to array or as option into a select-list.
      }
   }
Die Erzeugung eines Thumbnails geschieht dann folgendermaßen:
function create_png($f,$n) {
   global $fontdir;
   $bildpfad = $fontdir;
   $absolutpfad = getcwd(); //absolute Pfadangabe auslesen      
   $picpfad = "$absolutpfad$bildpfad";
   $file_body = str_replace(" ", "_", $n);
   $thumb_file = $file_body.".png";
   $name_file = $f; 
   $fontsource = "$absolutpfad$bildpfad$name_file";
   $breite = 250;
   $hoehe = 80;
   $img = imagecreate ($breite, $hoehe);
   $black = ImageColorAllocate ($img, 0, 0, 0);
   $white = ImageColorAllocate ($img, 255, 255, 255);
   $grey = ImageColorAllocate ($img, 192, 192, 192);
   $bordercol = ImageColorAllocate ($img, 239, 237, 222);
   imagefilledrectangle($img, 0, 0, $breite, $hoehe, $white);
   ImageTTFText($img, 20, 0, 5, 25, $black, $fontsource, $n);
   ImageTTFText($img, 20, 0, 5, 50, $grey, $fontsource, "Textzeile1");
   ImageTTFText($img, 20, 0, 5, 75, $grey, $fontsource, "Textzeile2");
   imagerectangle($img, 1, 1, $breite-1, $hoehe-1, $bordercol);
   imagefilledrectangle($img, $breite-4, 2, $breite-2, $hoehe-2, $white);
   imagefilledrectangle($img, 2, $hoehe-4, $breite-2, $hoehe-2, $white);
   Imagepng($img,"$picpfad$thumb_file",80); 
   }
Wichtig ist der Befehle ImageTTFText() der den Text mit dem angegeben Truetype Font in das Bild schreibt. Über Imagepng() wird das Bild dann gespeichert. Wie schon geschrieben sollte man keine JPEGs erzeugen lassen, da dabei die Klarheit der Schrift leidet und es zu Artefakten an den Serifen kommt.