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 ?
Hier kann eine Notiz zum Merk-Eintrag hinzugefügt werden (optional)
Geschlossen |
<?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 ); } ?>
Geschlossen | ||
Zurück zu Allgemein |