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
Kommentar