kostenloser Webspace werbefrei: lima-city


Fatal error: imagettfbbox() !

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mickare

    mickare hat kostenlosen Webspace.

    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...:confused:

    Ich hab eine Ahnung, dass der Lima-city Server MILTEN keine GD- als auch keine FreeType-Bibliothek hat... :confused:

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    mickare

    mickare hat kostenlosen Webspace.


    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
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!