Bild mit transparenter Farbe füllen
Cypog
- php
Hallo,
Ich möchte ein hochgeladenes Bild mit einer weißen Farbe überziehen, so dass es als Wasserzeichen verwendet werden kann.
Das Problem ist, dass imagefill nicht mit transparenten Farben umgehen kann.
Wie kann ich das sonst lösen?
Schöne Grüße
Cypog
Hallo!
Schon mal mit http://at2.php.net/manual/de/function.imagecolortransparent.php probiert?
Hallo!
Schon mal mit http://at2.php.net/manual/de/function.imagecolortransparent.php probiert?
Ja, aber ich bin nicht draufgekommen, in welcher Reihenfolge ich die Funktionen verwenden muss.
function ErstelleWasserzeichen($datei)
{
if (($ext = GetFileExtension($datei)) == "gif")
{
$bild = imagecreatefromgif($datei);
$farbe = ImageColorAllocateAlpha($bild, 255, 255, 255, 100);
imagecolortransparent($bild, $farbe);
imagefill($bild, 0, 0, $farbe);
imagegif($bild, $datei);
}
....
}
Schöne Grüße
Cypog
Ja, aber ich bin nicht draufgekommen, in welcher Reihenfolge ich die Funktionen verwenden muss.
Schau dir mal auf der Seite den 3ten Post von oben (der von fmkaiba at optonline dot net) an.
Ich versteh zwar nicht so ganz, was du da genau mit dem Bild vorhast, aber hier mal ein Lösungsansatz:
Mach's einfach per imagecopyresampled() (http://de2.php.net/imagecopyresampled):
Nimm ein halb-transparentes (mit weißer Farbe gefülltes) PNG, das du mittels imagecopyresampled() auf dein vorhandenes Bild kopierst.
Sollte klappen,
DL
Ich versteh zwar nicht so ganz, was du da genau mit dem Bild vorhast, aber hier mal ein Lösungsansatz:
Mach's einfach per imagecopyresampled() (http://de2.php.net/imagecopyresampled):
Nimm ein halb-transparentes (mit weißer Farbe gefülltes) PNG, das du mittels imagecopyresampled() auf dein vorhandenes Bild kopierst.Sollte klappen,
DL
Das hab ich mir auch schon überlegt, nur das Problem ist, dass ich jedesmal ein neues Bild erstellen muss, wenn ich die Transparenz verändern will.
Die Funktion sollte möglichst dynamisch sein.
Wenn es anders nicht geht, muss ich es wohl so versuchen.
Schöne Grüße
Cypog
Das Problem war ganz einfach zu lösen:
function ImageFillAlpha($image, $color)
{
imagefilledrectangle($image, 0, 0, imagesx($image), imagesy($image), $color);
}
Schöne Grüße
Cypog