Показать сообщение отдельно
  #1 (permalink)  
Старый 06.04.2009, 11:20
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

Скрипт показа уменьшеных изображений
Хотелось бы поделиться своей доработкой одного из скриптов:
Скрипт для создания превьюшек изображений

<?
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 - в переводе с англ. "принудительно" - если написать данный параметр, то размер изображения измениться, игнорируя соблюдение пропорций
все параметры кроме имени изображения являются не обязательными
__________________
VPS от 175 рублей (есть скидки 15% писать в ПМ) Анализ рынка VPS серверов
Есть только две бесконечные вещи: Вселенная и глупость. Хотя насчет Вселенной я не уверен.
Альберт Эйнштейн
Ответить с цитированием