Probleme mit GD library mit Texteingabe - header("Content-type: image/png")

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit GD library mit Texteingabe - header("Content-type: image/png")

    hallo,

    ich bin dabei, einen shirtcreator zu schreiben und habe eine alte version, die ich vor jahren mal mit freunden angefertigt habe wieder rausgekramt. dabei soll dem kunden die möglichkeit gegeben werden, einen text aufs shirt zu schreiben. ist denke ich klar.

    nun habe ich beide shirtcreator (alt & neu) auf zwei verschiedenen servern... bei meinem alten funktioniert alles wunderbar, ich kann text eingeben und ich sehe ihn so, wie es sein soll!

    bei meiner neuen version, die im prinzip nicht doll anders ist (nur an den xt shop angepasst) sehe ich keinen text, sondern ein leeres shirt. auch keine fehler...

    wenn ich bei beiden in der header("Content-type: image/png") datei error_reporting(E_ALL) reinschreibe und das content-type auskommentiere und mir dann die grafik per rechte maustaste und "grafik anzeigen" anzeigen lasse, dann sehen sie beide identisch aus.

    ich sitze seit tagen davor und mir fällt einfach nicht ein, woran es liegen kann!... hat partout einer eine spontane idee, woran es liegen kann?

    danke und grüße,
    marco

  • #2
    Hmm...
    Register_globals?
    Unterschiedliche PHP-Versionen?

    Als Erstes phpinfo()s vergleichen.

    Kommentar


    • #3
      register_globals sind bei beiden servern jeweils auf on gesetzt...

      die php versionen:

      server, wo es funktioniert: PHP Version 4.4.2RC2-dev

      server, wo es nicht funktioniert: PHP Version 4.4.2

      gibts da große unterschiede?


      die GD librarys:

      server, wo es funktioniert:

      gd
      GD Support enabled
      GD Version 2.0 or higher
      FreeType Support enabled
      FreeType Linkage with freetype
      GIF Read Support enabled
      GIF Create Support enabled
      JPG Support enabled
      PNG Support enabled
      WBMP Support enabled



      server, wo es nicht funktioniert:

      gd
      GD Support enabled
      GD Version bundled (2.0.28 compatible)
      FreeType Support enabled
      FreeType Linkage with freetype
      GIF Read Support enabled
      GIF Create Support enabled
      JPG Support enabled
      PNG Support enabled
      WBMP Support enabled
      XBM Support enabled

      Kommentar


      • #4
        weiß keiner einen rat?

        Kommentar


        • #5
          evtl. holst du das bild aus dem cache? aber ohne die seite oder den code zu kennen, wird es schwierig, dir zu helfen.
          Kissolino.com

          Kommentar


          • #6
            hier der code vom server, wo es nicht funktioniert! .. auf dem anderen sind lediglich die querys anders.

            PHP-Code:
            <?PHP
            /*header("Content-type: image/png");*/

            error_reporting(E_ALL);

            include(
            'includes/application_top.php');

            $sid        $_GET['sid'];
            $seite        $_GET['seite'];
            $picture    $_GET['bild'];
            $product    $_GET['pID'];

            $queryTmp xtc_db_query("SELECT textfarbe1,textfarbe2,textfarbe3,textgroesse1,textgroesse2,textgroesse3,text1,text2,
            text3,schrift1,schrift2,schrift3 FROM creator_tmp_param WHERE session='
            $sid' AND seite='$seite'");
            $recordTmp xtc_db_fetch_array($queryTmp);

            $queryFont1 xtc_db_query("SELECT file FROM creator_schriften WHERE id='$recordTmp[schrift1]'");
            $recordFont1 xtc_db_fetch_array($queryFont1);
            $schrift1 $recordFont1['file'];

            $queryFont2 xtc_db_query("SELECT file FROM creator_schriften WHERE id='$recordTmp[schrift2]'");
            $recordFont2 xtc_db_fetch_array($queryFont2);
            $schrift2 $recordFont2['file'];

            $queryFont3 xtc_db_query("SELECT file FROM creator_schriften WHERE id='$recordTmp[schrift3]'");
            $recordFont3 xtc_db_fetch_array($queryFont3);
            $schrift3 $recordFont3['file'];

            (!
            $recordTmp['textgroesse1']) ? $size1 15 $size1    $recordTmp['textgroesse1'];
            (!
            $recordTmp['textgroesse2']) ? $size2 15 $size2    $recordTmp['textgroesse2'];
            (!
            $recordTmp['textgroesse3']) ? $size3 15 $size3    $recordTmp['textgroesse3'];


            $text1    $recordTmp['text1'];
            $text2    $recordTmp['text2'];
            $text3    $recordTmp['text3'];

            $farbe1_firByte hexdec(substr($recordTmp['textfarbe1'],0,2));
            $farbe1_secByte hexdec(substr($recordTmp['textfarbe1'],2,2));
            $farbe1_thiByte hexdec(substr($recordTmp['textfarbe1'],4,2));

            $farbe2_firByte hexdec(substr($recordTmp['textfarbe2'],0,2));
            $farbe2_secByte hexdec(substr($recordTmp['textfarbe2'],2,2));
            $farbe2_thiByte hexdec(substr($recordTmp['textfarbe2'],4,2));

            $farbe3_firByte hexdec(substr($recordTmp['textfarbe3'],0,2));
            $farbe3_secByte hexdec(substr($recordTmp['textfarbe3'],2,2));
            $farbe3_thiByte hexdec(substr($recordTmp['textfarbe3'],4,2));


            $querydruck xtc_db_query("SELECT breite,oben,links FROM products WHERE products_id='$product'");
            $arrDruck xtc_db_fetch_array($querydruck);

            $width_total getimagesize("http://www.unitedshop24.de/multishop/shop_files/1/images/
            product_images/original_images/"
            .$picture);

            $topfirst $arrDruck['oben']+$size1;
            $topsecond $topfirst+$size2+4;
            $topthird $topsecond+$size3+4;

            $left $arrDruck['links'];
            $width $arrDruck['breite'];

            $Grafikdatei "http://www.unitedshop24.de/multishop/shop_files/1/images/product_images/original_images/".$picture;

            $im ImageCreateFromJPEG($Grafikdatei);
            $color1 ImageColorAllocate ($im$farbe1_firByte$farbe1_secByte$farbe1_thiByte);
            $color2 ImageColorAllocate ($im$farbe2_firByte$farbe2_secByte$farbe2_thiByte);
            $color3 ImageColorAllocate ($im$farbe3_firByte$farbe3_secByte$farbe3_thiByte);

            function 
            TextBreite($texthöhe,$fontfile,$textzeile) { 
                    
            $ts imagettfbbox($texthöhe,0,$fontfile,$textzeile); 
                    
            $ts_diff $ts[2] - $ts[0]; // x2 - x1; 
                    
            return $ts_diff
            }

            function 
            MZT($texthöhe,$fontfile,$textzeile,$farbe,$top,$left,$width) { 

                global 
            $im
                
            $TS imagettfbbox($texthöhe,0,"fonts/".$fontfile,$textzeile); 
                
            $dx abs ($TS[2]-$TS[0]); 
                
            $dy abs ($TS[5]-$TS[3]); 
                
            $x = ((($left*2)+$width) - $dx )/2
                
            //$y = ($top - $dy ) + $dy; 
                
            ImageTTFText($im$texthöhe0$x$top$farbe"fonts/".$fontfile$textzeile); 



            if(
            $recordTmp['text1']) {

                
            $laenge1 TextBreite($size1,"fonts/".$schrift1,$text1);
                while(
            $laenge1 >= $width) {

                    
            $text1 substr($text1,0,-1);
                    
            $laenge1 TextBreite($size1,"fonts/".$schrift1,$text1);
                    
            ImageLine ($im$left$arrDruck['oben'], $left$arrDruck['oben']+$size1$color1);
                    
            ImageLine ($im$left+$width$arrDruck['oben'], $left+$width$arrDruck['oben']+$size1$color1);
                }

                
            MZT ($size1,$schrift1,$text1,$color1,$topfirst,$left,$width);
            }

            if(
            $recordTmp['text2']){

                
            $laenge2 TextBreite($size2,"fonts/".$schrift2,$text2);
                while(
            $laenge2 >= $width){

                    
            $text2 substr($text2,0,-1);
                    
            $laenge2 TextBreite($size2,"fonts/".$schrift2,$text2);
                    
            ImageLine ($im$left$arrDruck['oben']+$size1$left$topsecond$color2);
                    
            ImageLine ($im$left+$width$arrDruck['oben']+$size1$left+$width$topsecond$color2);
                }

                
            MZT ($size2,$schrift2,$text2,$color2,$topsecond,$left,$width);
            }

            if(
            $recordTmp['text3']){

                
            $laenge3 TextBreite($size3,"fonts/".$schrift3,$text3);
                while(
            $laenge3 >= $width){

                    
            $text3 substr($text3,0,-1);
                    
            $laenge3 TextBreite($size3,"fonts/".$schrift3,$text3);
                    
            ImageLine ($im$left$arrDruck['oben']+$size2$left$topthird$color3);
                    
            ImageLine ($im$left+$width$arrDruck['oben']+$size2$left+$width$topthird$color3);

                
            MZT ($size3,$schrift3,$text3,$color3,$topthird,$left,$width);
            }

            ImagePNG ($im);
            ImageDestroy ($im);
            ?>

            //EDIT:

            hier funktionierts:

            http://www.marcokruger.de/blueprint/dev/index.php

            einfach textilien, tshirts und shirt weiß ... entschuldigt die aufmachung.. *g ist der alte und wirklich nur zum testen da!

            natürlich noch text eingeben


            und hier funktionierts nicht:

            http://shirtcreator-test.unitedshop2...D=454&div=text
            Zuletzt geändert von MarcoZap; 10.05.2006, 10:53.

            Kommentar


            • #7
              1. bitte code umbrechen => s. regeln

              2. wie rufst du das bild in der seite auf?
              3. hast du mal kontrollausgaben in der fkt MZT gemacht?
              - werden alle werte übergeben?
              - hast du eine ausgabe, wenn du einen text & font manuell einsetzt?
              - hast du probiert, den font mit einem absoluten pfad anzusprechen?
              Kissolino.com

              Kommentar


              • #8

                Warning: imagettfbbox(): Could not read font in /is/htdocs/67897/www.intermezzo-werbung.de/multishop/creator_artikelImg.php on line 70

                Warning: imagettfbbox(): Could not read font in /is/htdocs/67897/www.intermezzo-werbung.de/multishop/creator_artikelImg.php on line 78

                Warning: imagettftext(): Could not read font in /is/htdocs/67897/www.intermezzo-werbung.de/multishop/creator_artikelImg.php on line 83


                ist das, was ich bekomme bei "grafik anzeigen"
                Kissolino.com

                Kommentar


                • #9
                  das bild rufe ich hier auf:


                  if($text1 || $text2 || $text3){

                  eval("\$textfile_bit.=\"".html_gettemplate("creator_textfile_bit")."\";");

                  }

                  creator_textfile_bit:

                  <div id='thumb_text1' style="top:135px; left:223px; filterropShadow(color=#CCCCCC, offx=2, offy=2)">
                  <img src='creator_artikelImg.php?pID=$product&sid=$sid&seite=$picture&bild=$pic' border='0'>
                  </div>

                  das andere probiere ich mal grad aus! danke

                  Kommentar


                  • #10
                    siehe einen post über deinem
                    Kissolino.com

                    Kommentar


                    • #11
                      das bekomme ich schon gar nicht mehr angezeigt, habs dann wohl wirklich im cache zu liegen.

                      zeile 70:

                      $ts = imagettfbbox($texthöhe,0,$fontfile,$textzeile);

                      zeile 78:

                      $TS = imagettfbbox($texthöhe,0,"fonts/".$fontfile,$textzeile);

                      zeile 83:

                      ImageTTFText($im, $texthöhe, 0, $x, $top, $farbe, "fonts/".$fontfile, $textzeile);

                      Kommentar


                      • #12
                        - setz den absoluten pfad zum font ein, dann sollte es auch klappen
                        - erweitere die parameter-liste beim bildaufruf noch um einen timestamp, dann sollte das cache-problem auch weg sein
                        Kissolino.com

                        Kommentar


                        • #13
                          ich dank dir!

                          grüße ...

                          Kommentar

                          Lädt...
                          X