probleme mit imagettftext()

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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?

      Comment


      • #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

        Comment


        • #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

          Comment


          • #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

            Comment


            • #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

              Comment


              • #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

                Comment


                • #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

                  Comment

                  Working...
                  X