ilch Forum » Ilch Clan 1.1 » Allgemein » Vezerrtes Wasserzeichen

Geschlossen
  1. #1
    User Pic
    wiskyjim Mitglied
    Registriert seit
    29.03.2009
    Beiträge
    96
    Beitragswertungen
    0 Beitragspunkte
    Hi ich habe mir die Watermark-Funktion eingebaut.
    Es funktioniert soweit auch, jedoch wird das Wasserzeichen nicht klar genug dargsetellt (verzerrt/verschwommen). Was muss man ändern damit das Wasserzeichen klar und sauber eingebaut wird ?
    Ilch: 1.1 I
    Homepage:externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Rape_n_Run gelöschter User
    Ich nehm mal an, dass es auf eine bestimmte Größe "gezogen" wird, und die Bilde, die du als Wasserzeichen nehmen möchtest, einfach zu klein sind oder ne schlechte Auflösung haben.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    wiskyjim Mitglied
    Registriert seit
    29.03.2009
    Beiträge
    96
    Beitragswertungen
    0 Beitragspunkte
    Nein der Fehler ist der Alphachanal. Der wird nicht übergehend berechnet.
    Damit meine ich dass das Verlaufen der Textur nicht berechnet wird und dadurch das Watermark so verzerrt dargestellt wird.

    <?php   // position:
            // 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
    
    function watermark($image, $watermark, $save_as, $position = 9, $transparency = 61, $t_x = 0, $t_y = 0) {
        if ($position < 1 || $position > 9)
            return false;
        if (!file_exists($image) || !file_exists($watermark))
            return false;
        $infos_img = getimagesize($image);
        //print_r($infos_img);
        $infos_wat = getimagesize($watermark);
        if (!in_array($infos_img[2], array(1, 2, 3)) || !in_array($infos_wat[2], array(1, 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 < 0 || $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]) / 2, 0);
                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]) / 2, 0);
                break;
            case 2:
                $pos_y = $infos_img[1] - $infos_wat[1];
                break;
        }
        // watermark-procedure
        switch ($infos_img[2]) {
            case 2: $img_image = imagecreatefromjpeg($image); break;
            case 3: $img_image = imagecreatefrompng($image);  break;
            case 1: $img_image = imagecreatefromgif($image);  break;
        }
        switch ($infos_wat[2]) {
            case 2: $img_watermark = imagecreatefromjpeg($watermark); break;
            case 3: $img_watermark = imagecreatefrompng($watermark);  break;
            case 1: $img_watermark = imagecreatefromgif($watermark);  break;
        }
    
        imagealphablending($img_image, true);
        imagealphablending($img_watermark, true);
        imagecolortransparent($img_watermark, imagecolorat($img_watermark, $t_x, $t_y));
        imagecopyemerge($img_image, $img_watermark, $pos_x, $pos_y, 0, 0, $infos_wat[0], $infos_wat[1], $transparency);
    
        $fende = strtolower(substr($save_as, - 3));
    
        if ($fende == 'png') {
            return imagepng($img_image, $save_as);
        } elseif ($fende == 'gif') {
            return imagegif($img_image, $save_as);
        } else {
            return imagejpeg($img_image, $save_as);
        }
    	
      imagedestroy ( $img_image );
      imagedestroy ( $img_watermark );
      
    }
    ?>

    Ich denke dass der Fehler irgendwo zwischen den Zeilen 65 und 70 liegt !
    Ilch: 1.1 I
    Homepage:externer Link
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    wiskyjim Mitglied
    Registriert seit
    29.03.2009
    Beiträge
    96
    Beitragswertungen
    0 Beitragspunkte
    Hat sich erledigt ! Ich nehme an dass das Wasserzeichen zu klein und und kursiv eingestellt war.
    Warum auch immer dass in PHP so scheise dargestellt wird.
    Jedoch wenn ich es groß genug mache, so kann es sich sehen lassen.
    Ilch: 1.1 I
    Homepage:externer Link
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Rape_n_Run gelöschter User
    Wenn ich es groß genug mache, wer hätte das gedacht......
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    oink Mitglied
    Registriert seit
    23.09.2010
    Beiträge
    740
    Beitragswertungen
    227 Beitragspunkte
    wenn ich groß mache, kann sich das auch sehen lassen \o/
    before creation there must be destruction
    3 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten