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
 
          
 Watermarking in PHP - Bild verschwindet...
									
									
									Watermarking in PHP - Bild verschwindet...
								 Moderator
 Moderator
Kommentar