Ik heb er nog wel ergens een, moment.
Link gekopieerd
Hier staat genoeg in om je op weg te helpen.
<?php
$img = 'plaatje.jpg';
$dimensions = getimagesize ($img);
$width = $dimensions[0];
$height = $dimensions[1];
$small_width = 64;
$medium_width = 128;
$large_width = 512; // het maximum ligt richting 800
$ratio_small = $small_width / $width;
$ratio_medium = $medium_width / $width;
$ratio_large = $large_width / $width;
$small_height = intval ($ratio_small * $height);
$medium_height = intval ($ratio_medium * $height);
$large_height = intval ($ratio_large * $height);
// small
$src = imagecreatefromjpeg ($img);
$dst_small = imagecreatetruecolor ($small_width, $small_height);
imagecopyresampled ($dst_small, $src, 0, 0, 0, 0, $small_width, $small_height, $width, $height);
$name_small = str_replace ('.jpg', '_small.jpg', $img);
imagejpeg ($dst_small, $name_small, 85);
imagedestroy ($dst_small);
$name_small = basename ($name_small);
echo "<p>small: $small_width x $small_height<br><img src=\"pics/$name_small\"></p>";
// medium
$dst_medium = imagecreatetruecolor ($medium_width, $medium_height);
imagecopyresampled ($dst_medium, $src, 0, 0, 0, 0, $medium_width, $medium_height, $width, $height);
$name_medium = str_replace ('.jpg', '_medium.jpg', $img);
imagejpeg ($dst_medium, $name_medium, 85);
imagedestroy ($dst_medium);
$name_medium = basename ($name_medium);
echo "<p>medium: $medium_width x $medium_height<br><img src=\"pics/$name_medium\"></p>";
// large
$dst_large = imagecreatetruecolor ($large_width, $large_height);
imagecopyresampled ($dst_large, $src, 0, 0, 0, 0, $large_width, $large_height, $width, $height);
$name_large = str_replace ('.jpg', '_large.jpg', $img);
imagejpeg ($dst_large, $name_large, 85);
imagedestroy ($dst_large);
$name_large = basename ($name_large);
echo "<p>large: $large_width x $large_height<br><img src=\"pics/$name_large\"></p>";
imagedestroy ($src);
?>
Link gekopieerd
?
Onbekende gebruiker
14-11-2005 19:32
@Jan: Blijven de hoogte-breedte verhoudingen gelijk?
Link gekopieerd
@Sebastiaan: dat is inderdaad het uitgangspunt en blijkt ook te werken in de sites waar ik dit script gebruik.
Link gekopieerd
Lol. hoe lang werken jullie eigenlijk met PHP?
Link gekopieerd
Hier mijn thumbscriptje hij kijkt alleen naar de breedte zodat de verhouding gelijk blijft:
<?
$map = "./plaatjes/";
$thumb_map = $map."thumbs/";
$max_grootte = 160;
function thumbnail($naam, $map, $max_grootte)
{
$ext = strtolower(end(explode(".", $naam)));
if(@imagecreatefromgif($naam))
{
$afbeelding = imagecreatefromgif($naam);
$ext_r = "gif";
}
elseif(@imagecreatefromjpeg($naam))
{
$afbeelding = imagecreatefromjpeg($naam);
$ext_r = "jpg";
}
elseif(@imagecreatefrompng($naam))
{
$afbeelding = imagecreatefrompng($naam);
$ext_r = "png";
}
elseif(@imagecreatefromwbmp($naam))
{
$afbeelding = imagecreatefromwbmp($naam);
$ext_r = "bmp";
}
else
{
return "Ongeldige Extentie";
}
$ext = ($ext == "") ? $ext_r : "";
$breedte = imagesx($afbeelding);
$hoogte = imagesy($afbeelding);
if($breedte >= $hoogte)
{
$factor = $max_grootte / $breedte;
$breedte_nieuw = $max_grootte;
$hoogte_nieuw = $hoogte * $factor;
}
else
{
$factor = $max_grootte / $hoogte;
$hoogte_nieuw = $max_grootte;
$breedte_nieuw = $breedte * $factor;
}
$afbeelding_n = imagecreatetruecolor($breedte_nieuw, $hoogte_nieuw);
imagecopyresampled($afbeelding_n, $afbeelding, 0, 0, 0, 0, $breedte_nieuw, $hoogte_nieuw, $breedte, $hoogte);
imagejpeg($afbeelding_n, $map, 100);
if($ext == "gif")
{
imagegif($afbeelding_n, $map, 100);
}
elseif($ext == "jpg")
{
imagejpeg($afbeelding_n, $map, 100);
}
elseif($ext == "png")
{
imagepng($afbeelding_n, $map, 100);
}
elseif($ext == "bmp")
{
imagewbmp($afbeelding_n, $map, 100);
}
imagedestroy($afbeelding_n);
return true;
}
// Gebruiken
thumbnail($map . $naam, $thumb, $max_grootte);
?>
Link gekopieerd