Cypog: Bild mit transparenter Farbe füllen

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

  1. Hallo!
    Schon mal mit http://at2.php.net/manual/de/function.imagecolortransparent.php probiert?

    --
    LG,
    Snafu
    1. 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

      1. 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.

        --
        LG,
        Snafu
  2. 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

    1. 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

  3. 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