5
« on: February 04, 2009, 09:19:17 PM »
Ich habe es jetzt dann doch per google hinbekommen... Hier der geänderte php-Code für Interessierte!
Das verkleinerte Bild (Thumbnail) ist in diesem Fall 450px breit und proportional in der Höhe verkleinert.
<?
// Bilddaten feststellen
$size=getimagesize($_GET['bild']);
$breite=$size[0];
$hoehe=$size[1];
//hier die Breite festlegen
$neueBreite=450;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
if($size[2]==1) {
// GIF
$altesBild=ImageCreateFromGIF($_GET['bild']);
$neuesBild=ImageCreate($neueBreite,$neueHoehe);
imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
$watermark = imagecreatefrompng('watermark.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = $neuesBild;
$size = getimagesize("$neuesBild");
$dest_x = $size[0]/2 - $watermark_width/2 ;
$dest_y = $size[1]/2 - $watermark_height/2;
imagecopymerge($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height, 100);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
}
elseif($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG($_GET['bild']);
$neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
$watermark = imagecreatefrompng('watermark.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = $neuesBild;
$dest_x = $size[0]/2 - $watermark_width/2 ;
$dest_y = $size[1]/2 - $watermark_height/2;
imagecopymerge($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height, 100);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
}
elseif($size[2]==3) {
// PNG
$altesBild=ImageCreateFromPNG($_GET['bild']);
$neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
$watermark = imagecreatefrompng('watermark.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = $neuesBild;
$dest_x = $size[0]/2 - $watermark_width/2 ;
$dest_y = $size[1]/2 - $watermark_height/2;
imagecopymerge($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height, 100);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
}
?>
Hiermit werden auch gifs, pngs und jpegs verkleinert und mit dem Wasserzeichen versehen. Das Originalbild wird erst verkleinert und dann wird das Wasserzeichen darüber gelegt.
Es muss aber auch der Befehl in der detail.html wie folgt geändert werden:
<img src="./watermark.php?bild={media_src}" border="0" alt="{image_name}" />
Sofern man verschiedene Bildgrößen haben möchte, z. B. für Gäste kann man alternativ die watermark.php in watermark1.php mit anderen Größenangaben abspeichern. Natürlich wieder den Code in der Detail.html entsprechend ändern...
Ich hoffe, dass ist soweit alles richtig. Bei mir läuft es einwandfrei... Ansonsten: Ich bin kritikfähig!
Gruß
cliff