Jag har ett litet thumbnail-skript som gör bilderna kvadratiska 100x100.
Är bilden liggande så tas kvadraten ut från mitten av bilden,
är bilden stående så tas kvadraten ut från toppen av bilden.
Du kallar på skriptet med: thumb.php?pic=filnamn.jpg
Det går också att få större eller mindre bilder (dock kvadratiska)
om man anger det i URL-en: thumb.php?pic=filnamn.jpg&width=150
Skriptet är okommenterat, men om du tycker det är något så kan du
kanske själv klura ut hur du kan få bilderna att bli 80X100 istället.
Håll tillgodo, eller strunta i skriptet :)
<?php
$dir = "pictures/"; // Sökvägen till katalogen med bilder
if (isset($_GET['pic'])&& file_exists($dir.$_GET['pic'])) {
header("Content-Disposition: inline; filename=thumb_".$_GET['pic']);
if (isset($_GET['width'])) {
$dstWH = $_GET['width'];
} else $dstWH = 100;
$info = getimagesize($dir.$_GET['pic']);
if ($info[2] == 2) {
$im_src = imagecreatefromjpeg($dir.$_GET['pic']);
} else {
$im_src = imagecreatefrompng($dir.$_GET['pic']);
}
if ($info[1] >= $info[0]) {
$srcX = 0;
$srcY = 0;
$srcW = $info[0];
$srcH = $info[0];
} else {
$srcX = round(($info[0] - $info[1])/2);
$srcY = 0;
$srcW = $info[1];
$srcH = $info[1];
}
// Använd dessa om du inte har stöd för GD2
// $img_thumb = imageCreate($dstWH, $dstWH);
// imagecopyresized ( $img_thumb, $im_src, 0, 0, $srcX, $srcY, $dstWH, $dstWH, $srcW, $srcH );
// Använd dessa om du har stöd för GD2
$img_thumb = imageCreateTruecolor($dstWH, $dstWH);
imagecopyresampled ( $img_thumb, $im_src, 0, 0, $srcX, $srcY, $dstWH, $dstWH, $srcW, $srcH );
imageJPEG($img_thumb, '', 90);
ImageDestroy($img_thumb);
ImageDestroy($im_src);
}
?>
