Hallo,
Ich verzweifel gerade an diesem Script. Es soll nichts anderes tun, als eine png-Datei als "Wasserzeichen" in eine jpg-Datei einfügen und dann wieder unter der selben Adresse zu speichern (quasi überschreiben).
Das tut es aber leider Gottes nicht. GDLIB ist selbstverständlich aktiviert.
Aufrufen tu ich das Script dann so:
http://www.starclash.de/upload/test/...&logo=logo.png
Stattdessen ist die Bilddatei anschließend verschwunden.
Was mach ich da? Ich verzweifel gleich...
Danke,
winter
Ich verzweifel gerade an diesem Script. Es soll nichts anderes tun, als eine png-Datei als "Wasserzeichen" in eine jpg-Datei einfügen und dann wieder unter der selben Adresse zu speichern (quasi überschreiben).
Das tut es aber leider Gottes nicht. GDLIB ist selbstverständlich aktiviert.
Code:
<?php
function watermark($image, $watermark, $save_as, $position=5, $transparency=50, $t_x=0, $t_y=0) {
// 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 < 1 || $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 < 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
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_image, TRUE);
imagealphablending($img_watermark, TRUE);
imagecolortransparent($img_watermark, imagecolorat($img_watermark, $t_x, $t_y));
imagecopymerge($img_image, $img_watermark, $pos_x, $pos_y, 0, 0, $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_as))
return TRUE;
else
return FALSE;
}
return FALSE;
}
$bildv=$_GET['bild'];
$logov=$_GET['logo'];
watermark($bildv, $logov, $bildv);
?>
http://www.starclash.de/upload/test/...&logo=logo.png
Stattdessen ist die Bilddatei anschließend verschwunden.
Was mach ich da? Ich verzweifel gleich...
Danke,
winter
Moderator
Comment