probleme mit imagettftext()

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

  • probleme mit imagettftext()

    Hallo zusammen

    ich versuche eine art copyright auf Bilder zu schreiben. damit ich die Schriftgrösse und die Schriftart beliebig wählen kann, wollte ich imagettftext() verwenden. Leider funktioniert das nicht.
    Das script produziert keine Fehlermeldungen, es speichert die Bilder einfach ohne das copyright darauf ab.

    $img=ImageCreateFromJPEG("$sourcePath/$x");
    $white = ImageColorAllocate ($img, 255, 255, 255);
    imagettftext($img, 50, 0, imagesx($img)-110,imagesy($img)-20, $white, "arial.ttf", "www.foo.bar");
    $res=imagejpeg($img, $destination);

    Ich habe schon ein bisschen mit den verschiedenen Parametern gespielt, aber nie sah ich auch nur den Rand einer Schrift auf dem Bild.
    hat jemand eine Idee? Oder was wird im array zurückgegeben, wenn etwas schiefgelaufen ist?

    thx muge

  • #2
    kann es sein, dass du hier
    PHP-Code:
    ... imagesx($img)-110,imagesy($img)-20 ... 
    ins nirwana schreibst ... lass dir mal die werte per echo ausgeben
    Kissolino.com

    Kommentar


    • #3
      hi! bitte [PHP]-Tags benutzen. macht das ganze übersichtlicher.

      auf den ersten blick würde ich mal fragen, ob der randabstand denn okay ist?

      Oder was wird im array zurückgegeben, wenn etwas schiefgelaufen ist?
      bekommst du was zurückgegeben?

      Kommentar


      • #4
        Die x,y Werte müssten stimmen. ich ziehe von der Dimension ja etwas ab, damit muss der Punkt im Bild liegen. Ausserdem schreibt

        PHP-Code:
        imagestring($img,3,imagesx($img)-110,imagesy($img)-20,"www.foo.bar",$white); 
        dorthin wo man es erwartet.

        im Array, das ich zurückkriege steht:
        array(8) {
        [0]=>int(530)
        [1]=>int(470)
        [2]=>int(900)
        [3]=>int(470)
        [4]=>int(900)
        [5]=>int(424)
        [6]=>int(530)
        [7]=>int(424)
        }

        Das sollten ja die Eckpunkte des "schriftumspannenden" Rechteckes sein. Wenn das stimmt, so sollte ein teil der schrift auf dem Bild sichtbar sein (640x480). ich habe die werte jetzt trotzdem mal auf 10/10 gesetzt ohne dass sich was getan hätte.

        Ich zweifle langsam, dass die Farbe stimmt. Oder das Schriftfile (hier habe ich aber auch schon andere ausprobiert).
        Was meint ihr?

        thx muge

        Kommentar


        • #5
          1. hast du freetype-support? => phpinfo
          2. die arial.ttf heisst auch so und nicht "Arial.TTF" oder "arial.TTF" ... sonst benenn die datei um (in kleinbuchstaben)
          3. dann probier mal:
          PHP-Code:
          $img=ImageCreateFromJPEG($sourcePath."/".$x);
          $white ImageColorAllocate ($img255255255);
          $sx =  imagesx($img)-110;
          $sy imagesy($img)-20;
          $font $absoluter_pfad_zum_font"/arial.ttf";
          imagettftext($img500$sx$sy$white$font"www.foo.bar");
          $res=imagejpeg($img$destination); 
          Kissolino.com

          Kommentar


          • #6
            Hallo

            Den freetype support habe ich. Am Pfad zum Bild liegt es nicht, habe ich schon getestet (gibt eine hübsche Meldung).
            Ich zweifle langsam am Inhalt des arial.ttf Files. Allerdings habe ich auch schon andere Schriftfiles auf meinem Server ausprobiert (z.B. luximb.ttf) und das Ergebnis war immer das gleiche, nämlich nichts.
            Gibt es bei diesen Files unterschiede zwischen den Betriebssystemen oder sollten alle auf allen laufen?

            thx
            muge

            Kommentar


            • #7
              hast du die schrift als 'binary' auf den server geladen? oder kommt die schrift vom mac (gibt's da ttf ?)?... sind die einzigen ideen, die ich dazu noch habe ...
              Kissolino.com

              Kommentar


              • #8
                also wenn du das auf einer windows XP kiste probierst, dann koennte es auch
                daran(php.net) liegen...


                Ok, for all you windows users that STILL get the Could not find/open font error... i think i've found the solution.

                The php-for-windows package has the directory /windows/fonts hardcoded for all Win32 distributions. It doesn't look anywhere else (e.g. the php folder, the documentroot or the script location). However, if you use Windows XP, the windows-home directory is not WINNT as in Win2k, but Windows (back to the old days).

                The next solution is not elegant, but it works (and is the only solution i have found that works for winXP).

                Create a directory Winnt\fonts in the root of the same partition as your main operating system, and put the fonts you want to use in the newly created fonts-directory...

                enjoy!
                geh zu lixlpixel phpsnippets.de fuer php code zum runterladen

                Kommentar


                • #9
                  Also das ganze läuft auf meinem OpenBSD Server. Zumindest die Schriften, die ich vom Server selber habe sollten doch eigentlich funktionieren.
                  Ich werde das nochmal genau anschauen und Melden, wenn es was zu Melden gibt.

                  thx
                  muge

                  Kommentar

                  Lädt...
                  X