Wasserzeichen (GD) mit TTF oder System-Schrift mit umrandung möglich?

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

  • Wasserzeichen (GD) mit TTF oder System-Schrift mit umrandung möglich?

    Hallo!

    Ich generiere bereits per PHP einen variablen Schriftzug in meine On-The-Fly generierten JPG`s.

    Nun nimmt PHP aber immer die standartschrift Verdana in Schwarz.
    Ich möchte aber gerne ein immer optimal lesbares Wasserzeichen, entweder sollte die schwarze Schrift eine Umrandung haben oder mehrfarbig sein.
    Wer weis wie das geht?

    Am schönsten wäre natürlich, wenn ich dafür auf noch eine TTF Schriftart verwenden könnte (mit Umrandung), das funktioniert aber irgendwie bei den imagecreatefromjpeg Funktionen nicht oder?

    Vielleicht kann mir auch noch jemand sagen, warum ich immer nur die schwarze Schrift und keine andere Farbe angezeigt bekomme auch, wenn ich "ImageColorAllocate" veränder? Es ist einfach immer schwarz!

    Mein Code:
    ---
    Header("Content-type: image/jpeg");

    $im = imagecreatefromjpeg("images/$bild . ".jpg");
    $string = "$bild Schriftzug";
    $schrift_groesse = 14;
    $left = 9;
    $top = (imagesy($im)-20);
    $bg_color = ImageColorAllocate($im, 255, 255, 255);
    //$schrift_color = ImageColorAllocate($im, 255,255,255);
    ImageString($im,$schrift_groesse,$left,$top,$string,$schrift_color);
    ImageJpeg($im);
    ImageDestroy($im);
    ---

    Vielen Dank!!

    Jogi

  • #2
    mit
    PHP-Code:
    imagecopyresampled $ziel$quelle0000$ziel_breite$ziel_hoehe$quell_breite,$quell_hoehe) ;

    // oder

    imagecopyresized $ziel$quelle0000$ziel_breite$ziel_hoehe$quell_breite,$quell_hoehe); 
    kannst du sogar richtige logos mit transparens in deine bilder einfügen.

    das logo muss halt nur verkleinert in eine ecke kopiert werden und sollte ein png oder gif sein ( gif wird etwas schwer wenn du eine GD lib über 1.6 hast)

    wenn du allerdingst nur den schrifttyp ändern möchtest ...
    imagettftext() -- Write text to the image using TrueType fonts

    wegen den farben würde ich es einfach mal mit
    PHP-Code:
    $ziel ImageCreateTrueColor$ziel_breite $ziel_hoehe); 
    probieren

    hoffe konnte dir damit helfen
    Gruß Bo

    Kommentar


    • #3
      Deine IDee funktioniert leider nicht :-(

      Danke Dir, aber so gehts leider nicht!

      Ich möchte ja keine feste Grafik als Wasserzeichen einblenden, sondern eben einen Variablen Text (z.B. Bildnummer aus Datenbank) und den dann eben umranden.
      D.h. ich kann kein weiteres Gif oder PNG einsetzen.

      ImageCreateTrueColor funktioniert bei mir nicht, vielleicht kannst Du meinen Code mal bei Dir ausprobieren?

      imagettftext() funktioniert bei mir, aber nicht im zusammenhang mit der darunterliegenden Grafik, ich kann damit nur einen Shcriftzuug auf einfarbigem Hintegrund ertsellen :-((

      weis jemand weiteren RAT???

      Danke Euch!

      Kommentar


      • #4
        zeiche doch einfach mit den php funktionen einen kasten um deinen text es gibt auch eine funktion mit der du die länge des textes berechnen kannst damit du weißt wie groß deine box seinen muß.

        welchen betriebssystem läuft den auf deinem server ?
        windows oder linux ?

        meiner meinung nach funktioniert imagecreatetruecolor
        nur mit linux systemen.. bin mir da aber nicht mehr ganz sicher.
        kann auch sein das ich das verwechsel und es imagecopyresampled war.

        Kommentar


        • #5
          das sollte gehen, musst du halt nur auf deine daten anpassen:
          PHP-Code:
          $mybutton $designpath.$design."/bu".$typ.".jpg";
             
          $mybutton $inpath."bu".$typ.".jpg";
             
          $myfont $mainpath."/fonts/verdana.ttf";

              
          $image1 imagecreatefromjpeg($mybutton);
              
          $orig getimagesize($mybutton);
              
          $image2 imagecreate($orig[0], $orig[1]);
              
          imageCopyResized($image2$image10000$orig[0], $orig[1], $orig[0], $orig[1]);

            
          /* $bcolor1 = ImageColorAllocate($image1,0,0,255);
             $vcolor1 = ImageColorAllocate($image1,255,0,0);
             ImageTTFText($image1, $h, $rt, $l, $o,$vcolor1, $myfont,"menutext");
             imagejpeg($image1,"test.jpg",100);
             imagedestroy($image1);
            */
             
          $bcolor1 ImageColorAllocate($image2,0,0,255);
             
          $vcolor1 ImageColorAllocate($image2,255,0,0);
             
          ImageTTFText($image2$h$rt$l$o,$vcolor1$myfont,"menutext");
             
          imagejpeg($image2,"test.jpg",100);
             
          imagedestroy($image1);
             
          imagedestroy($image2); 
          Zuletzt geändert von Wurzel; 05.08.2003, 13:27.
          Kissolino.com

          Kommentar


          • #6
            das ganze muss auf XP/Apache und auf LINUX laufen.

            werde das gepostete script mal testen, danke euch!!

            Kommentar


            • #7
              die funktionen laufen unter beidem, wichtig ist, welche GD du installiert hast:

              GD < 2.0 => imagecreate(), imagecopyresized()
              GD >= 2.0 => imagecreatetruecolor(), imagecopyresampled()

              die ttf-funktionen laufen überall (sofern installiert), wichtig ist,
              dass du mit absoluten pfaden zur zu den verwendeten dateien
              arbeitest (bilder, fonts).
              Kissolino.com

              Kommentar


              • #8
                Meine GD Optionen unter LINUX sehen wie folgt aus:

                GD Support enabled
                GD Version 1.6.2 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


                heißt das jetzt, dass ich GD kleiner oder größer 2.0 habe??
                Habe ich das richtig vertsanden, dass die Farbbeinflussung nur ab GD 2.0 funkt?

                danke euch!

                Jogi

                Kommentar


                • #9
                  Original geschrieben von JogiWebster
                  heißt das jetzt, dass ich GD kleiner oder größer 2.0 habe??
                  Habe ich das richtig vertsanden, dass die Farbbeinflussung nur ab GD 2.0
                  kleiner

                  Original geschrieben von JogiWebster
                  Habe ich das richtig vertsanden, dass die Farbbeinflussung nur ab GD 2.0
                  welche farbbeeinflussung? imagecolorallocate() geht bei dir.

                  stelle gerade fest, in meinem code ist ein kleiner fehler änder ich mal eben ab.
                  Kissolino.com

                  Kommentar


                  • #10
                    Hi,

                    auch wenn das Thema alt ist, so bin ich über die Suche darauf gestoßen und habe schon lange eine Funktion gesucht, mit der man imagettftext mit einem Rand ausstatten kann. Nachdem die Suche erfolglos endete, habe ich es heute endlich geschafft selber eine Funktion zu realisieren.

                    Wer also auch verzweifelt sucht, darf gerne darauf zurückgreifen:
                    http://www.programmierer-forum.de/te...and-t80510.htm

                    Ansonsten wünsche ich mir weitere Schriftarten-Effekte mit denen man imagettftext beeinflussen kann. Eine Verlaufsfüllung und unterschiedlich farbige Buchstaben hätte ich am liebsten. Falls also jemand was an der Hand hat würde ich mich echt freuen. Einen Schatten-Effekt habe ich übrigens auch schon realisieren können.

                    Ich selbst würde gerne Logos On-The-Fly generieren, daher ist mir jeder Effekt willkommen.

                    Gruß
                    Marc
                    mein Honda Forum | meine Scripte

                    Kommentar


                    • #11
                      Einfach den selben Text 1x größer und 1x kleiner mit 2 verschiedenen Farben übereinander legen! Dann hast auch nen Rand drumrum!
                      WHILE (!$asleep) { $sheep++; }

                      Kommentar

                      Lädt...
                      X