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