Dunkles Wasserzeichen?

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

  • Dunkles Wasserzeichen?

    Hi,

    ich arbeite gerade recht erfolgreich mit Wasserzeichen auf Bildern.

    Verwende ich als Wasserzeichen ein PNG mit schwarzen Hintergrund und weißer Schrift, so ist auf dem Endbild eine schöne weiße, transparente Schrift zu sehen.

    Ist aber der Hintergrund weiß und die Schrift schwarz, so wird nicht etwa eine schwarze transparente Schrift eingesetzt, sondern der der Hintergrund erscheint als Box mit "ausgestanzter" Schrift.

    Auf sehr hellen Bildern ist so ein Wasserzeichen aber nicht zu erkennen.

    Habe dabei folgendes Skript verwendet:
    PHP-Code:
    function watermark($image$watermark$save_as$position$transparency$t_x=0$t_y=0) {
        
    // Michael Müller, 05.03.2004 17:05, [url]www.php4u.net[/url]
        // Positionen:
            // 1 oben links 
            // 2 oben mittig
            // 3 oben rechts
            // 4 Mitte links
            // 5 Mitte
            // 6 Mitte rechts
            // 7 unten links
            // 8 unten mittig
            // 9 unten rechts
        // erlaubt sind png und jpeg
        
    if($position || $position 9)
            return 
    FALSE;
        if(!
    file_exists($image) || !file_exists($watermark))
            return 
    FALSE;
        
    $infos_img getimagesize($image);
        
    $infos_wat getimagesize($watermark);
        if(!
    in_array($infos_img[2], array(2,3)) ||     !in_array($infos_wat[2], array(2,3)))
            return 
    FALSE;
        if(
    $infos_img[0]<$infos_wat[0] || $infos_img[1]<$infos_wat[1])
            return 
    FALSE;
        if(
    $infos_wat[0]<$t_x || $infos_wat[1]<$t_y)
            return 
    FALSE;
        
    $transparency 100 $transparency;
        if(
    $transpareny || $transpareny 100)
            return 
    FALSE;
        
    #unlink($save_as);

        // Position x        
        
    switch (($position-1)%3) {
            case 
    0
                
    $pos_x 0;
                break;
            case 
    1:
                
    $pos_x round(($infos_img[0]-$infos_wat[0])/20);
                break;
            case 
    2:
                
    $pos_x $infos_img[0]-$infos_wat[0];
                break;
        }
        
    // Position y
        
    switch (floor(($position-1)/3)) {
            case 
    0
                
    $pos_y 0;
                break;
            case 
    1:
                
    $pos_y round(($infos_img[1]-$infos_wat[1])/20);
                break;
            case 
    2:
                
    $pos_y $infos_img[1]-$infos_wat[1];
                break;
        }
        
    // watermark-procedure
        
    if($infos_img[2] == 2)
            
    $img_image imagecreatefromjpeg($image);
        if(
    $infos_img[2] == 3)
            
    $img_image imagecreatefrompng($image);
        if(
    $infos_wat[2] == 2)
            
    $img_watermark imagecreatefromjpeg($watermark);
        if(
    $infos_wat[2] == 3)
            
    $img_watermark imagecreatefrompng($watermark);
        
    imagealphablending($img_imageTRUE);
        
    imagealphablending($img_watermarkTRUE);
        
    imagecolortransparent($img_watermarkimagecolorat($img_watermark$infos_img[0], $infos_img[1])); 
        
    imagecopymerge($img_image$img_watermark$pos_x$pos_y00$infos_wat[0], $infos_wat[1], $transparency);
        if(
    strtolower(substr($save_as, -3)) == "png") {
            if(
    imagepng($img_image$save_as))
                return 
    TRUE;
            else
                return 
    FALSE;
        } else {
            if(
    imagejpeg($img_image$save_as100))
                return 
    TRUE;
            else
                return 
    FALSE;
        }
        return 
    FALSE;
        } 
    Wie bekomme ich eine dunkle Schrift hin? Vorallem wie kann ich das Skript entscheiden lassen ob es die dunkle oder helle Schrift einbinden soll?

    Danke!

  • #2
    Ist aber der Hintergrund weiß und die Schrift schwarz, so wird nicht etwa eine schwarze transparente Schrift eingesetzt, sondern der der Hintergrund erscheint als Box mit "ausgestanzter" Schrift.
    Bei letzterem hast du natürlich auch weiß als transparente Farbe gesetzt???

    Bezüglich der Bildanalyse guck mal im Manual, ob du da reguläre PHP-Funktionen findest, die dir helfen können.

    Der einfachheit halber würde ich aber (wenn wirklich notwendig) das schwarze wasserzeichen mit einem weißen Rahmen (oder umgekehrt) versehen.

    Kommentar


    • #3
      Hatte zum Farbbestimmen erst das Pixel rechts unten des Wasserzeichens genommen. Dann schwarz dann weiß und probiert...

      Funktioniert hat es dann letztlich mit der Farbe vom Pixel oben links...

      Naja... das Problem der Lesbarkeit ist trotzdem geblieben, auch wenn ich irgendwie ein Grenze zwischen hellem und dunklem Waserzeichen bestimmte habe, so das ich mich letztendlich auf einen transparenten schwarzen Rahmen mit weißer Schrift geeinigt habe...

      Kommentar


      • #4
        ... na, was ich sach.

        Kommentar

        Lädt...
        X