Помню как я намучался когда первый раз столкнулся с проблемой превьюшек, поэ
том у и выложил этот скрипт, а вдруг кому-то поможет. С описанием я заморачиватся не стал - это же готовые решения, а не учебное пособие. Вобщем пользуйтесь.
З.Ы. Скрипт нужно разместить в отдельном файле, например thumb.php
PHP - Код
//Ф-ия возвращает уменьшенную копию изображения.
//И вызывается в фомате
//thumb.php?id=путь_к_рисунку, так же можно задать размеры,
// или только высоту, тогда
//картинка уменьшится сохранив пропорции. Скрипт понимает
//такие форматы изображения как GIF,JPEG,PNG
//а возвращает в формате JPEG.Из HTML вызывать ф-ию нужно
// так <img src=thumb.php?id=путь_к_рисунку>
// список параметров thumb(путь_к_рисунку, ширина,высота)
function thumb ( $path , $x , $y = 0 )
{
$t = getimagesize ( $path ) or die( 'Unknown type of image' );
$with = $t [ 0 ];
$height = $t [ 1 ];
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( $y == 0 )
{ $y = $x *( $height / $with );}
header ( "Content-type: image/" . $type );
$thumb = imagecreate ( $x , $y );
imagecopyresized ( $thumb , $img , 0 , 0 , 0 , 0 , $x , $y , $with , $height );
$thumb = imagejpeg ( $thumb );
return $thumb ;
}
if( $id )
{
echo thumb ( $id , 200 );
}