Wasserzeichen Transparent

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

  • Wasserzeichen Transparent

    Hallo,

    ich fügen in ein Bild ein transparentes Wasserzeichen ein.
    Läuft soweit alles ok.
    Nur ist plötzlich das Wasserzeichen nicht mehr Transparent, sondern hat einen hintergrund.
    Hier mal der Code:
    PHP-Code:
    $file "$PicPathOut_small"."$id"."-$zelle".".jpg"## einlesen des bildes 
    $size getimagesize($file); ## auslesen der größe des bildes
    $width $size[0]; ## breite des bildes
    $height $size[1]; ## höhe des bildes
    $picture imagecreatefromjpeg($file);
    $image imagecreatetruecolor($width$height);
    imagecopyresampled($image$picture0000$width$height$width$height);
    $transition 100### transparents des logos 0 = unsichtbar 
    $logo imagecreatefrompng('lupe.png'); ### speicherort der lupe
    $logo_width imagesx($logo); ### auswertung breite logo
    $logo_height imagesy($logo); ### auswertung höhe logo
    $logo_x $width $logo_width### lupe auf der position 65px von links einfügen (bildbreits 100- logobreite 35px) ##
    $logo_y $height $logo_height### lupe auf der position bildhöhe - logohöhe 35px von oben einfügen ########
    imagecopymerge($image$logo$logo_x$logo_y00$logo_width$logo_height$transition);
    imagejpeg($image,"$PicPathOut_small"."$id"."-$zelle".".jpg"); 
    Das Bild schaut dann hinterher so aus:
    Weis jemand woran das liegt?

  • #2
    Hallo,

    wenn du das Wasserzeichen sowieso unverblasst aufbringen willst ($transition = 100), nimm doch einfach imagecopy() und lass das $transition-Argument weg. Dann sollte es funktionieren. Die Funktion imagecopymerge arbeitet anders und ist für das was du vorhast nicht geeignet.

    Falls du es genauer wissen willst: Diese Funktion ersetzt den Alphakanal des Quellbildes (also der Lupe) mit einem vollflächigen Alphakanal gemäß dem letzten Parameter (bei dir $transition). Das ist eigentlich ziemlich bescheuert, da man die auch auf Basis vom blend mode des Quellbildes vormultiplizieren könnte, macht die GDlib aber nicht. Wenn man das haben will, muss man die Bilder pixelweise durchlaufen und die Kanäle selber verrechnen.

    Übrigens sind die Zeilen 5—7 sinnlos, stattdessen kannst du auch gleich
    PHP-Code:
    $image imagecreatefromjpeg($file); 
    schreiben und dir den 1-zu-1-Kopiervorgang schenken.

    Gruß,

    Amica
    Zuletzt geändert von AmicaNoctis; 02.07.2012, 06:17.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Super, hat nun geklappt.
      Danke dür die ausfühliche Erklärung.
      Kommt nicht oft vor, das jemand so etwas macht.
      Mach weiter so.

      Kommentar

      Lädt...
      X