Хотелось бы поделиться своей доработкой одного из скриптов:
Скрипт для создания превьюшек изображений
<?
function thumb($path,$x=0,$y=0,$f=0)
{
if($x == 0 and $y == 0 and $f==1) $f = 0;
$t=getimagesize ($path) or die('Unknown type of image');
$width=$t[0];
$height=$t[1];
if($x == 0 and $y == 0) { $x = $width; $y = $height; }
switch ($t[2])
{
case 1:
$type='GIF';
$img=imagecreatefromgif($path);
break;
case 2:
$type='JPEG';
$img=imagecreatefromjpeg($path);
break;
case 3:
$type='PNG';
$img=imagecreatefrompng($path);
break;
}
if($x > 0 and $y > 0 and $f == 0)
{
$x_tmp=$y*($width/$height);
$y_tmp=$x*($height/$width);
if($y_tmp < $y) $y = $y_tmp; else $x = $x_tmp;
}
if($x == 0) $x=$y*($width/$height);
if($y == 0) $y=$x*($height/$width);
header("Content-type: image/".$type);
if($f == 1)
{
$thumb=imagecreatetruecolor($x,$y);
imagecopyresampled($thumb,$img,0,0,0,0,$x,$y,$width,$height);
}
else
{
if($width>$x)
{
$thumb=imagecreatetruecolor($x,$y);
imagecopyresampled($thumb,$img,0,0,0,0,$x,$y,$width,$height);
}
else
{
$thumb=imagecreatetruecolor($width,$height);
imagecopyresampled($thumb,$img,0,0,0,0,$width,$height,$width,$height);
}
}
$thumb=imagejpeg($thumb);
return $thumb;
}
if($_GET['name'])
{
if($_GET['w']>0) $w = (int)$_GET['w']; else $w = 0;
if($_GET['h']>0) $h = (int)$_GET['h']; else $h = 0;
if(isset($_GET['forcibly'])) $forcibly = 1; else $forcibly = 0; //принудительно
//if($w == 0 and $h == 0) $w = 150; //значение ширины по умолчанию, если не заданы параметры
echo thumb($_GET['name'], $w, $h, $forcibly);
}
?>
Пример использования:
<img src="view_pic.php?name=files/6383.jpg&w=150&h=100&forcibly" border="0" />
где: view_pic.php - имя файла с этим скриптом
files/6383.jpg - имя изображения относительно данного файла
w=150 - задаем ширину в 150px
h=100 - задаем высоту в 100px
forcibly - в переводе с англ. "принудительно" - если написать данный параметр, то размер изображения измениться, игнорируя соблюдение пропорций
все параметры кроме имени изображения являются не обязательными