Transparenter Text in bestehendes Bild

blck

Mitglied
Hallo,
ich möchte gerne einen transparenten Text in ein bestehendes Bild(JPG) als eine Art Wasserzeichen einfügen. Da JPG keine Transparenzen kennt müsste ich es als PNG Bild speichern(geht ja über imagepng statt imagejpg) und den Text dort dann einfügen. Alle Tutorials, die ich zu diesem Thema gefunden habe, nutzen jedoch neu erzeugte Bilder. Wie schaffe ich diesen transparenten Text also in das bestehende Bild? Wäre schön, wenn ihr z.B. Code-Schnipsel für mich hättet.

MfG Blck
 
Ja fast,
nur das der Text des Wasserzeichens hier aus einem Input feld kommen soll. Ich praktisch also nur nen transparentes ImageString(); brauche. Klar könnte ich auch erst aus dem String ein Bild erzeugen und dieses dann auf das andere packen, dass ist aber eigentlich ein Schritt zuviel.

Also der Anwender gibt ein Wasserzeichensatz ein und das Script druckt es sozusagen aufs Bild. Nur eben mit einer gewissen Transparenz, damit das Bild ansich nicht gestört wird. Das ganze sollte möglichst ohne GDLib funktionieren.

Mfg Blck
 
Anders wirst du es aber IMHO nicht hinbekommen. JPEG beherrscht definitiv keinen Alpha-Channel. Wenn du das unbedingt benötigst, dann nimm PNG oder GIF.
 
Hallo,
ja ich weiß, jpeg kennt keine Transparenzen.
Und da die Quelldateien Jpgs sind, speicher ich sie beim hochladen per imagepng(); als verkappte PNGs ab, da sie, da keine Änderung am Dateinamen erfolgt, immernoch Bild.jpg heißen. Habe mitlerweile einen farbigen Text im Bild, d.h. müsste es jetzt nur noch Tranzparent kriegen.

So far,
Blck
 
Gut, so habe es jetzt mit imagecolorallocatealpha und imagepng probiert. Das führt leider auch noch nicht zum gewünschten Erfolg.
PHP:
$y_wasserpos = $height - ($height*0.5);
$black = imagecolorallocate($image_p, 0, 0, 0, 50);
Imagettftext($image_p,$grose,0,0,$y_wasserpos,$black,'include/fonts/ariblkf',$wassertext);
imagepng($image_p)

Das Bild wird also erstellt und der Text auch eingebaut, nur leider komplett schwarz und eben nicht transparent.

Danke für eure Hilfe,
MfG Blck
 
imagecolorallocate() akzeptiert doch gar keine 5 Parameter. Jedenfalls nicht laut Manual. Wolltest du vielleicht imagecolorallocatealpha()?

EDIT: Sorry, hatte nur den letzten Satz und den Source gelesen. Kannst mein Posting ignorieren.

EDIT2: Warum verwendest du eigentlich in deinem Beispiel nicht *alpha? Evtl doch vertippt? :-)
 
Zuletzt bearbeitet:
Zurück