Schriftart in ImageString oder ImageTTFText

Seven Secrets

Erfahrenes Mitglied
Ich habe folgendes Problem:

Wenn ich bei meiner Navigation folgenden Bildgenerator benutze funktioniert es:

PHP:
<?php
  define("TextFONT", "");

  function ConvertColor($hexVal){
    $ColorVal = array(3);
    for($i = 0; $i < 3; $i++)
      $ColorVal[$i] = HexDec(substr($hexVal, $i * 2, 2));
    return $ColorVal;
  }

  //$width = strlen($txt) * ImageFontWidth(TextFONT);
  $width = 110;
  $offset = 2;
  $imgFRAME = ImageCreate($width, ImageFontHeight(TextFONT)+$offset);

  list($red, $green, $blue) = ConvertColor($bg);
  $bgCOLOR = ImageColorAllocate($imgFRAME, $red, $green, $blue);

  list($red, $green, $blue) = ConvertColor($fg);
  $fgCOLOR = ImageColorAllocate($imgFRAME, $red, $green, $blue);

  ImageFill($imgFRAME, 1, 1, $bgCOLOR);
  ImageString($imgFRAME, TextFONT, 1, 1, $txt, $fgCOLOR);
  ImageColorTransparent($imgFRAME,$bgCOLOR);

  header("Content-Type: image/gif"); 
  ImageGIF($imgFRAME);
  ImageDestroy($imgFRAME);
?>

Nun ist diese Standartschriftart ja nicht besonderst schön und ich wollte arial nutzen.

Ersetz ich aber:

PHP:
 ImageString($imgFRAME, TextFONT, 1, 1, $txt, $fgCOLOR);

durch:

PHP:
 ImageTTFText ($imgFRAME, 9, 0, 1, 1, $fgCOLOR, "arialf", $txt);

Wird der Gewünsche Schriftzug nicht angezeigt! Habe einen Fehler im Script?
 
Probier mal Folgendes:
PHP:
<?php

	function ConvertColor($hexVal)
	{
		$returnArray = array( 'red'   => null, 'green'  => null, 'blue' => null );
		foreach( $return as $key => $value ) {
			$returnArray[$key] = HexDec(substr($hexVal, $key * 2, 2));
		}
		return $returnArray;
	}


	$fontFace = 'arialf';
	$fontSize = 9;
	$offset = 2;
	$width = ImageFontWidth($fontSize) + $offset * 2;
	$height = ImageFontHeight($fontSize) + $offset * 2;

	$im = ImageCreate($width, $height);

	$colors = ConvertColor($bg);
	$bgColor = ImageColorAllocate($im, $colors['red'], $colors['green'], $colors['blue']);
	$colors = ConvertColor($fg);
	$fgColor = ImageColorAllocate($im, $colors['red'], $colors['green'], $colors['blue']);

	ImageFill($im, 1, 1, $bgColor);
	ImageTTFText ($im, $fontSize, 0, 1, 1, $fgColor, $fontFace, $txt);
	ImageColorTransparent($imgFrame, $bgColor);

	header('Content-Type: image/gif');
	ImageGIF($im);
	ImageDestroy($im);
	exit;

?>
In der $fontFace steht die Pfadangabe der TTF-Schriftdatei, allerdings wird diese auf mysteröse Weise vom Forum geschluckt.
 
Das Problem hatte ich auch mal - wenn die Schrift im Windows-Font-Verzeichnis lag, ging es, wenn die Schriftart im selben Verzeichnis wie das PHP-File lag, nicht. Ich habe hier im Forum leider auch keine Lösung des Problems bekommen.

Gruß, Joe
 
Zurück