email als Graphik einbauen mit Hintergrundtransparenz

  • Hi beisammen,


    Thema habe ich schon hier im Forum gehabt; - allerdings mit anderem Problem. Mir wurde dabei hervorragend geholfen, deswegen hier eine andere Fragestellung:


    folgender php Code (nennen wir ihn der Einfachheit halber email.php):

    PHP
    1. <?php
    2. Header ("Content-type: image/gif");
    3. $im = imagecreate (200, 30);
    4. $hintergrund = imagecolorallocatealpha ($im, 255, 255, 255, 127);
    5. $schriftfarbe = imagecolorallocatealpha ($im, 0, 0, 0, 0);
    6. ImageTTFText ($im, 12, 0, 0, 19, $schriftfarbe, "/Roboto-Regular.ttf", "michael-tester@gmx.de");
    7. ImageGif ($im);
    8. ImageDestroy ($im);
    9. ?>

    Eingebunden ist der Code in einer html Datei mit:

    Code
    1. <img src="email.php">

    Die ttf Datei ist vorhanden und die email wird auch als Graphik angezeigt.


    Jetzt zu meinem Problem:

    Als Hintergrundbild habe ich nicht eine Farbe, sondern ein sehr dezentes Bild (Thema war in CSS an anderer Stelle hier auch).

    Deswegen habe ich oben auch imagecolorallocatealpha gewählt, um den Hintergrund transparent zu machen.


    Es klappt nur nicht. Text ist schwarz (hier auch gewollt). Hintergrund ist weiß (hier nicht gewollt; - obwohl ich den alpha Kanal 127 gewählt habe, der m. E. alles zu 100% transparent machen sollte (oder etwa nicht?).


    Kann mir einer sagen wo mein Denkfehler ist?


    Hoffentlich habe ich mein Problem diesmal klarer beschrieben (Arne Drews weiß Bescheid - big smile).


    olkostbe

  • Hmm, das hilft mir jetzt nicht sonderlich weiter.


    In der CSS Datei habe ich einen Hintergrund definiert (ein Bild).


    Hier mal das Ergebnis, wobei ich testweise auch die Hintergrundfarbe der email Grafik verändert habe als Test- hier dunkelgrau. Genau dieses Dunkelgrau soll transparent werden. Die Daten habe ich mal übermalt.

    bild.JPG


    Also das "Alloziieren" bitte etwas genauer erklären.


    Danke schon mal im Voraus.

  • Also das "Alloziieren" bitte etwas genauer erklären.

    Bitte etwas mehr mitdenken.


    Hier

    Code
    1. $schriftfarbe = imagecolorallocatealpha ($im, 0, 0, 0, 0);

    weißt du $schriftfarbe eine Farbe zu und hier

    Code
    1. ImageTTFText ($im, 12, 0, 0, 19, $schriftfarbe, "/Roboto-Regular.ttf", "michael-tester@gmx.de");

    benutzt du sie.


    Hier

    Code
    1. $hintergrund = imagecolorallocatealpha ($im, 255, 255, 255, 127);

    weißt du $hintergrund eine Farbe zu und dann? Dann machst du nichts damit.

  • m.scatello Bitte nicht böse sein:

    Genau das habe ich auch schon gedacht und bin dann folgendem weitergegangen:


    php.net:

    array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color, string $fontfile , string $text )


    resource $image ist bei mir: $im,

    float $size ist bei mir:12,

    float $angle ist bei mir: 0,

    int $x ist bei mir: 0,

    int $y ist bei mir:19,

    int $color ist bei mir: $schriftfarbe (wie Du schon richtig bemerkt hast)

    string $fontfile ist bei mir: "/Roboto-Regular.ttf",

    string $text ist bei mir:"michael-tester@gmx.de"


    Wie zum Teufel bringe ich da dann $hintergrund rein!? Muss ich eventuell bei imagecreate anpacken? Aber wie.


    ABER: Genau da bin ich jetzt rein und habe die Lösung gefunden: Danke m.scatello !!

    Hier der link bei php.net der die Lösung / den Klick bei mir brachte:

    http://php.net/manual/de/function.imagecreatetruecolor.php


    Trotzdem ein kleiner Wunsch an Dich.

    Bin einfach noch ziemlich grün bei php. Manchmal braucht es mehr als nur die Einsatzanwort.


    Schönes Wochenende