imagettfbbox

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

  • AmicaNoctis
    antwortet
    Zitat von in-power Beitrag anzeigen
    das ganze muss ich ja dann bei der erstellung des wasserzeichens anwenden
    Ja

    Zitat von in-power Beitrag anzeigen
    und beim drehen?
    Ja

    Zitat von in-power Beitrag anzeigen
    oder sehe ich das falsch?
    Nein

    Ohne das jetzt getestet zu haben, glaube ich, dass du mit imagealphablending den Blend Mode ausschalten musst. Mit imagesavealpha musst du vor dem Speichern den Alphakanal zuschalten. Probier mal einfach ein bisschen damit rum und das Handbuch gibt es ja auch noch.

    Einen Kommentar schreiben:


  • in-power
    antwortet
    das ganze muss ich ja dann bei der erstellung des wasserzeichens anwenden
    und beim drehen?
    oder sehe ich das falsch?

    Einen Kommentar schreiben:


  • AmicaNoctis
    antwortet
    Hallo nochmal,

    imagecolortransparent() ist für Palettenbilder vorgesehen und unterstützt nur Indextransparenz. Für PNG solltest du Alphatransparenz benutzen und damit auf imagealphablending() und imagesavealpha() umsteigen.

    Einen Kommentar schreiben:


  • in-power
    antwortet
    Hab das ganze nun mal ausprobiert.
    Ich erstelle ein Wasserzeichen mit Text, speichere dieses Bild dann
    ab. Danach will ich es mit imagerotate drehen.
    Doch das Ergebnis sieht recht seltsam aus, wie ihr es hier sehen könnt.
    Erst das Originalbild, dann das gedrehte:




    Hier mal der Code:
    PHP-Code:
    $text_color imagecolorallocate($new_picture$rot$gruen$blau);
    imagecolortransparent($new_picture$background_color); ### hintergrundfarbe transparent machen
    imagefill($new_picture00$background_color);
    imagettftext($new_picture$fontsize$fontangle$text_pos_x$text_pos_y$text_color$fontfile$text_neu);
    // Hintergund transparent stellen
    imagecolortransparent($new_picture$background_color);
    imagepng($new_picture"vorschau/"."wasserzeichen".".png"); ### bild auf dem server speichern

    ###############################################################################################################
    $filename 'vorschau/wasserzeichen.png';
    $degrees 10;
    // Load
    $source imagecreatefrompng($filename);
    $text_color imagecolorallocate($source255255255);
    imagecolortransparent($source$text_color);
    // Rotate
    $rotate imagerotate($source$degrees1);
    imagecolortransparent($rotate$background_color); ### hintergrundfarbe transparent machen
    imagepng($rotate"vorschau/test.png");
    imagedestroy($new_picture); ## speicherplatz wieder freigeben 
    Hoffentlich kann mir jemand helfe.
    Danke schon mal

    Einen Kommentar schreiben:


  • in-power
    antwortet
    Danke den Link.
    Hab ich heute früh auch gefunden.
    Werde das Problem so lösen.

    Einen Kommentar schreiben:


  • AmicaNoctis
    antwortet
    Klar, die gibt es.

    Einen Kommentar schreiben:


  • in-power
    antwortet
    Hey,

    hab mir den Link gerade mal näher angeschaut.
    Ist ja schön und recht.
    Aber das gnze geht halt nur auf die Höhe.
    Ich bräuchte das ganze auf die Breite.
    Ich denke das wird einfach nicht machbar sein,
    das ich die richtige Breite bekomme, da einfach die
    Laufweiten der Buchstaben zu unterschiedlich sind
    und selbst die Leerzeichen zwischen den Buchstaben
    nicht immer gleich sind.
    Gibt es eine Möglichkeit, ein Bild zu erstellen und dann
    das fertige Bild zu drehen?

    Einen Kommentar schreiben:


  • in-power
    antwortet
    Danke für den Link.
    Werd ich mal testen.

    Einen Kommentar schreiben:


  • AmicaNoctis
    antwortet
    Hallo,

    warum übergibst du der Funktion 0 als Winkel und nicht den tatsächlichen Drehwinkel der Schrift? Imagettfbbox() ist darauf ausgelegt, die Bounding Box auch von gedrehtem Text zu errechnen, wenn auch nicht immer perfekt.

    Gruß,

    Amica

    Einen Kommentar schreiben:


  • in-power
    hat ein Thema erstellt imagettfbbox.

    imagettfbbox

    Hey,

    ich Arbeite gerade an einem Script zur Erstllung eines Wasserzeichen.
    Soweit läuft schon alles.
    Nun würde ich aber gerne die Schrift noch um 30 oder 45 Grad drehen.
    Doch dann habe ich das Problem, dass das Fenster von der Breite und Höhe
    gar nicht mehr passt.
    Hab schon mal den Versuch gemacht, und bei festen Gradangaben
    die Breite und Höhe minus der Breite und Höhe bei 0 Grad zu berechnen.
    Dabei kommt aber auch kein gutes Ergebnis raus, da ja die Buchstaben von der
    Breite unterschiedlich sind.
    Gibt es eine andere Funktion, mit der ich die Breite des Textfeldes heraus
    finden kann.
    Hier mal der Code zur neuen Berechnung der Breite:
    PHP-Code:
    if ($fontangle == "45")    {
    $textfield imagettfbbox($fontsize0$fontfile$text_neu);
    $text_size_x = (abs($textfield[6] - ($textfield[4] - 50))); ### obere linke ecke minus obere rechte ecke = bildbreite 
Lädt...
X