Fatal error: imagettfbbox() !
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ahnung
beitrag
bild
break
count
eigene funktion
endung
fatal error
fehler
fehlermeldung
funktion
image
kleinsten fehler
laut
po
schrift
source
transform
versuchen
viewer
-
Hallo,
ich habe ein Script geschrieben f?r ein Server-Viewer, dass Mapbilder verkleinert und mit einem Text versieht, aber es kommt die Fehlermeldung:
Fatal error: Call to undefined function: imagettfbbox() in /home/webpages/lima-city/mickare/html/phgstats/maps/maptext.php on line 193
Ich hab wirklich keine Idee woran es liegen k?nnte, denn auf meinem Xampp-Server auf meinem Rechner funzt es...
Ich hab eine Ahnung, dass der Lima-city Server MILTEN keine GD- als auch keine FreeType-Bibliothek hat...
Aber ich w?rde echt gern den Grund erfahren...
$imagepadding = 10; class TRANSFORM{ function color($colorin){ $colorin = preg_replace("/#/","",$colorin); $colorin = preg_replace("/(w{1,2})(w{1,2})(w{1,2})/","1.2.3",$colorin); $colorin = explode('.', $colorin); $colorred =hexdec($colorin[0]); $colorgreen =hexdec($colorin[1]); $colorblue= hexdec($colorin[2]); $colorout = array('red'=>$colorred,'green'=>$colorgreen,'blue'=>$colorblue); return $colorout; } function colorinvert($colorin){ $colorred =$colorin['red']; $colorgreen =$colorin['green']; $colorblue= $colorin['blue']; /* $colorred1 =255; $colorgreen1 =255; $colorblue1 =255; */ $colorredout = 255-$colorred; $colorgreenout = 255-$colorgreen; $colorblueout = 255-$colorblue; $colorout = array('red'=>$colorredout,'green'=>$colorgreenout,'blue'=>$colorblueout); return $colorout; } function text($textin){ $textin = stripslashes($textin); $suchen = array("[newline]","[hochkomma]"); $ersetzen = array("n","'",""); ksort($suchen); ksort($ersetzen); $textout = preg_replace($suchen,$ersetzen,$textin); return $textout; } } /* ------------------------------- SCHRIFT IMAGE --------------------------------------------------- */ if(!$_GET['fontfile'] OR !$_GET['fontcolor'] OR !$_GET['width'] OR !$_GET['height'] OR !$_GET['text'] OR !$_GET['mapimage']){ $fehlertext = 'FEHLER!'; if(!$_GET['fontfile']){$fehlertext .= ' fontfile';} if(!$_GET['fontcolor']){$fehlertext .= ' fontcolor';} if(!$_GET['text']){$fehlertext .= ' text';} if(!$_GET['mapimage']){$fehlertext .= ' mapimage';} if(!$_GET['width']){$fehlertext .= ' width';} if(!$_GET['height']){$fehlertext .= ' height';} $image = imageCreate(150,150); $red = imageColorAllocate($image,255,0,0); $ttf_size = imagettfbbox( 10, 0, 'maptext_fonts/arial.ttf', $fehlertext ); $ttf_height = $ttf_size[1]-$ttf_size[7]; $ttf_width = $ttf_size[4]-$ttf_size[6]; $text_x = (imagesx($image) - $ttf_width) / 2; $text_y = (imagesy($image) - $ttf_height) / 2; imageTTFText($image,10,0,$text_x,$text_y,imageColorAllocate($image,0,0,0),'maptext_fonts/arial.ttf', $fehlertext); header('Content-Type: image/png'); imagePNG($image); imagedestroy($image); }else{ $transform = new TRANSFORM(); /* $map = preg_replace('','$mapimage',$); */ $fontsize = $_GET['fontsize']; $fontfile = $_GET['fontfile']; $fontfile = $fontfile.'.ttf'; $fontcolor = $_GET['fontcolor']; $mapimage = $_GET['mapimage']; $fontcolor = $transform->color($fontcolor); if(!$_GET['fontangle']){$fontangle = 0;} $text = $_GET["text"]; $text = $transform->text($text); if(!$_GET['mapname']){ $mapimage1 = explode('.',$mapimage); $mapimage1 = explode('/',$mapimage1[0]); $mapimage1pos = count($mapimage1)-1; $mapname = $mapimage1[$mapimage1pos]; }else{ $mapname = $_GET['mapname']; } $textx = $_GET['textx']; $texty = $_GET['texty']; $width = $_GET['width']; $height = $_GET['height']; /*$pos = strrpos($mapimage,'.')+1; $file_ext = substr($mapimage,$pos);*/ $endung = explode('.',$mapimage); switch(strToLower($endung[1])) { case 'png' : $image_src = @imageCreateFromPNG($mapimage); break; case 'jpg' : case 'jpeg' : $image_src = @imageCreateFromJPEG($mapimage); break; case 'gif' : $image_src = @imageCreateFromGif($mapimage); break; }; if(!$image_src){ $fehlertext = 'FEHLER! Konnte das Bild nicht ?ffnen!'; $image = imageCreate(150,150); $white = imageColorAllocate($image,255,0,0); $ttf_size = imagettfbbox( 10, 0, 'maptext_fonts/arial.ttf', $fehlertext ); $ttf_height = $ttf_size[1]-$ttf_size[7]; $ttf_width = $ttf_size[4]-$ttf_size[6]; $text_x = (imagesx($image) - $ttf_width) / 2; $text_y = (imagesy($image) - $ttf_height) / 2; imageTTFText($image,10,0,$text_x,$text_y,imageColorAllocate($image,0,0,0),'maptext_fonts/arial.ttf',$fehlertext); header('Content-Type: image/png'); imagePNG($image); imagedestroy($image); }else{ /* ---------------------------------------- */ $src_w = imagesx($image_src); $src_h = imagesy($image_src); $image_dst = imageCreateTrueColor($width,$height); if($src_w > $src_h){ $dst_h = $height; $dst_w = $width; $src_x = ($src_w - $src_h)/2; $src_w = $src_h; imageCopyResized($image_dst,$image_src,0,0,$src_x,0,$dst_w,$dst_h,$src_w,$src_h); }elseif($src_w < $src_h){ $dst_h = $height; $dst_w = $width; $src_y = ($src_h - $src_w)/2; $src_h = $src_w; imageCopyResized($image_dst,$image_src,0,0,0,$src_y,$dst_w,$dst_h,$src_w,$src_h); }else{ $dst_w = $width; $dst_h = $height; imageCopyResized($image_dst,$image_src,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h); } /* ---------------------------------------- */ $fontcolortext = imageColorAllocate($image_dst,$fontcolor['red'],$fontcolor['green'],$fontcolor['blue']); /* ---------------------------------------- */ $ifendung = explode('.',$mapimage); $ifendung = explode('/',$ifendung[0]); $ifpos = count($ifendung)-1; if(strToLower($ifendung[$ifpos])!='default'){ if(empty($textx) AND !empty($texty)){ /*fontsize ermitteln*/ if(empty($fontsize)){ $imagepaddingwidth = ($dst_w-($imagepadding*2)); $ttf_width=0; $fontsize1=0; $fontsize2=0; while($ttf_width<=$imagepaddingwidth){ $fontsize1 = $fontsize1 + 1; while($ttf_height<=$imagepaddingwidth){ $fontsize2 = $fontsize2 + 1; /* <- <- <- <- Line 193 !!!! */ $ttf_size1 = imagettfbbox( $fontsize2, $fontangle, $fontfile, $text); /* <- <- <- <- Line 193 !!!! */ $ttf_height = $ttf_size1[1]-$ttf_size1[7]; } $ttf_size2 = imagettfbbox( $fontsize1, $fontangle, $fontfile, $text ); $ttf_width = $ttf_size2[4]-$ttf_size2[6]; } if($fontsize1<=$fontsize2){ $fontsize = $fontsize1; }else{ $fontsize = $fontsize2; } } /*fontsize vorgegeben*/ $ttf_size = imagettfbbox( $fontsize, $fontangle, $fontfile, $text ); $ttf_width = $ttf_size[4]-$ttf_size[6]; if($ttf_width<=imagesx($image_dst)){ $text_x = (imagesx($image_dst) - $ttf_width) / 2; }else{ $text_x = ($ttf_width - imagesx($image_dst)) / 2; } $text_y = $texty; /*ende*/ /* ---------------------------------------- */ }elseif(empty($texty) AND !empty($textx)){ /*fontsize ermitteln*/ if(empty($fontsize)){ $imagepaddingwidth = ($dst_w-($imagepadding*2)); $ttf_width=0; $fontsize1=0; $fontsize2=0; while($ttf_width<=$imagepaddingwidth){ $fontsize1 = $fontsize1 + 0.5; while($ttf_height<=$imagepaddingwidth){ $fontsize2 = $fontsize2 + 0.5; $ttf_size = imagettfbbox( $fontsize2, $fontangle, $fontfile, $text ); $ttf_height = $ttf_size[1]-$ttf_size[7]; } $ttf_size = imagettfbbox( $fontsize1, $fontangle, $fontfile, $text ); $ttf_width = $ttf_size[4]-$ttf_size[6]; } if($fontsize1<=$fontsize2){ $fontsize = $fontsize1; }else{ $fontsize = $fontsize2; } } /*fontsize vorgegeben*/ $ttf_size = imagettfbbox( $fontsize, $fontangle, $fontfile, $text ); $ttf_height = $ttf_size[1]-$ttf_size[7]; if($ttf_height<=imagesy($image_dst)){ $text_y = (imagesy($image_dst) - $ttf_height) / 2; }else{ $text_y = ($ttf_height - imagesy($image_dst)) / 2; } $text_x = $textx; /* ---------------------------------------- */ }elseif(!empty($textx) AND !empty($texty)){ $text_x = $textx; $text_y = $texty; /* ---------------------------------------- */ }else{ /*fontsize ermitteln*/ if(empty($fontsize)){ $imagepaddingwidth = ($dst_w-($imagepadding*2)); $ttf_width=0; $fontsize1=0; $fontsize2=0; while($ttf_width<=$imagepaddingwidth){ $fontsize1 = $fontsize1 + 0.5; while($ttf_height<=$imagepaddingwidth){ $fontsize2 = $fontsize2 + 0.5; $ttf_size = imagettfbbox( $fontsize2, $fontangle, $fontfile, $text ); $ttf_height = $ttf_size[1]-$ttf_size[7]; } $ttf_size = imagettfbbox( $fontsize1, $fontangle, $fontfile, $text ); $ttf_width = $ttf_size[4]-$ttf_size[6]; } if($fontsize1<=$fontsize2){ $fontsize = $fontsize1; }else{ $fontsize = $fontsize2; } } /*fontsize vorgegeben*/ $ttf_size = imagettfbbox( $fontsize, $fontangle, $fontfile, $text ); $ttf_height = $ttf_size[1]-$ttf_size[7]; $ttf_width = $ttf_size[4]-$ttf_size[6]; if($ttf_width<=imagesx($image_dst)){ $text_x = (imagesx($image_dst) - $ttf_width) / 2; }else{ $text_x = ($ttf_width - imagesx($image_dst)) / 2; } if($ttf_height<=imagesy($image_dst)){ $text_y = (imagesy($image_dst) - $ttf_height) / 2; }else{ $text_y = ($ttf_height - imagesy($image_dst)) / 2; } } /* ---------------------------------------- */ $ttf_size = imagettfbbox( $fontsize, $fontangle, $fontfile, $text ); $ttf_height = $ttf_size[1]-$ttf_size[7]; $ttf_width = $ttf_size[4]-$ttf_size[6]; $text_y = $text_y + $ttf_height; $fontcolorinvert = $fontcolor; $fontcolorinvert = $transform->colorinvert($fontcolorinvert); $fontcolorinvert = imageColorAllocate($image_dst,$fontcolorinvert['red'],$fontcolorinvert['green'],$fontcolorinvert['blue']); $text_xinvert = $text_x+1; $text_yinvert = $text_y+1; imageTTFText($image_dst,$fontsize,0,$text_xinvert,$text_yinvert,$fontcolorinvert,$fontfile,$text); imageTTFText($image_dst,$fontsize,0,$text_x,$text_y,$fontcolortext,$fontfile,$text); } $ttf_size = imagettfbbox( 10, 0,'maptext_fonts/arial.ttf', $mapname ); $ttf_height = $ttf_size[1]-$ttf_size[7]; $ttf_width = $ttf_size[4]-$ttf_size[6]; $mapimage1_x = $width-(5+$ttf_width)/*($width-$ttf_width)/2*/; $mapimage1_y = $height-5; $testcolor = imageColorAllocate($image_dst,0,0,0); imageTTFText($image_dst,10,0,$mapimage1_x+1,$mapimage1_y+1,$testcolor,'maptext_fonts/arial.ttf',$mapname); $testcolor = imageColorAllocate($image_dst,255,255,255); imageTTFText($image_dst,10,0,$mapimage1_x,$mapimage1_y,$testcolor,'maptext_fonts/arial.ttf',$mapname); header('Content-Type: image/png'); imagePNG($image_dst); imagedestroy($image_dst); imagedestroy($image_src); } }
Das war das Sript ich hoffe mir kann jemand helfen...
mfg mickare
PS: Bin so 2 Stunden weg...
Beitrag ge?ndert: 21.9.2006 18:44:58 von mickare
Beitrag ge?ndert: 21.9.2006 18:45:48 von mickare -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wieso postest du den ganzen Source ? Die Fehlermeldung ist doch eindeutig genug.
Fatal error: Call to undefined function: imagettfbbox() in /home/webpages/lima-city/mickare/html/phgstats/maps/maptext.php on line 193
Soweit ich das erkennen kann, ist da ein "b" zu viel.
Wenn er dir schon sagt, dass eine Funktion undefiniert ist, dann hast du dich in der Regel vertippt oder vergessen eine eigene Funktion zu includen.
edit:
*argh* ich nehme es zur?ck. Die Funktion gibt es ja wirklich !
Hm, wie es aussieht, unterst?tzt Lima diese Funktion nicht, wobei ich das schon sehr seltsam finde...
edit2:
Zitat von php.net
This function requires both the GD library and the FreeType library.
Laut phpinfo() sind diese aber beide mit kompiliert worden.
Das gilt aber nur f?r xadras. Auf milten habe ich keinen zweitacc mit dem ich das testen k?nnte. Und Pyrokar ist derzeit down.
Beitrag ge?ndert: 21.9.2006 21:09:35 von bladehunter -
Wieso postest du den ganzen Source ? Die Fehlermeldung ist doch eindeutig genug.
Fatal error: Call to undefined function: imagettfbbox() in /home/webpages/lima-city/mickare/html/phgstats/maps/maptext.php on line 193
Soweit ich das erkennen kann, ist da ein "b" zu viel.
Wenn er dir schon sagt, dass eine Funktion undefiniert ist, dann hast du dich in der Regel vertippt oder vergessen eine eigene Funktion zu includen.
edit:
*argh* ich nehme es zur?ck. Die Funktion gibt es ja wirklich !
Hm, wie es aussieht, unterst?tzt Lima diese Funktion nicht, wobei ich das schon sehr seltsam finde...
edit2:
Zitat von php.net
This function requires both the GD library and the FreeType library.
Laut phpinfo() sind diese aber beide mit kompiliert worden.
Das gilt aber nur f?r xadras. Auf milten habe ich keinen zweitacc mit dem ich das testen k?nnte. Und Pyrokar ist derzeit down.
Beitrag ge?ndert: 21.9.2006 21:09:35 von bladehunter
Danke f?r den Versuch, ich habe die ganze source gepostet um auch den kleinsten Fehler der Vorkommt zu finden...
Auf das mit dem Problem mit der "GD library and the FreeType library" bin ich auch schon gekommen...
Trotzden nochmal danke f?r den Versuch,
mfg
mickare -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage