afbeelding verkleinen en watermerken
Ik maak gebruik van een scriptje dat afbeeldingen 'on the fly' watermerkt.
Het script dat ik hier voor gebruik:
$bestand = "foto.jpg";
header('content-type: image/jpeg');
$watermark = imagecreatefrompng('watermark.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = imagecreatefromjpeg($bestand);
$size = getimagesize($bestand);
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
Nu zou ik echter ook de afbeelding willen verkleinen. Ik heb hier al een script voor, maar ik zou ze graag willen combineren.
Wanneer de afbeelding getoond wordt met het watermerk moet deze ook max 480 hoog zijn bijvoorbeeld.
De code die ik gebruik voor het verkleinen is:
//Waar komt het bestand vandaan?
$bronvanhetbestand = "afbeelding.jpg";
//De hoogte en breedte ophalen van het plaatje
$afmeting = getimagesize($bronvanhetbestand);
//Dit is de breedte die alle plaatjes krijgen
$doelhoogte = 480;
//Hoogte en breedte toekennnen aan nieuwe variabelen
$bronbreedte = $afmeting[0];
$bronhoogte = $afmeting[1];
$verhouding = $bronbreedte/$bronhoogte;
//De nieuwe hoogte berekenen aan de gegevens van het oude plaatje en de doel breedte
$doelbreedte = $verhouding * $doelhoogte;
//De hoogte, als het nodig is, afronden
$doelbreedte = round($doelbreedte, 0);
//Zeggen dat dit bestand een plaatje is
header('content-type: image/jpeg');
//Het plaatje inlezen in de variabele $image
$image = imagecreatefromjpeg($bronvanhetbestand);
//een nieuw klein plaatje maken met de gewenste grootte
$destination = imagecreatetruecolor($doelbreedte, $doelhoogte);
//Het nieuwe plaatje vullen met verkleinde plaatje
imagecopyresampled($destination, $image, 0, 0, 0, 0, $doelbreedte, $doelhoogte, $bronbreedte, $bronhoogte);
//Het plaatje weergeven
imagejpeg($destination);
//Het bronplaatje verwijderen
imagedestroy($image);
//Het doelplaatje verwijderen
imagedestroy($destination);
Nu is de vraag hoe ik deze beide scripts moet combineren. Alle tips zijn welkom!
Groeten Peter.
Gewijzigd op 01/01/1970 01:00:00 door Peter
Er zijn nog geen reacties op dit bericht.