PDA

Просмотр полной версии : Как сделать картинки предпросмотра?


Ridikh
26.06.2009, 21:11
Есть скрипт, который выдает страницы с фотками, нужно чтобы на этих страницах показывались уменьшенные по весу и по размеру картинки предпросмотра фоток. подскажите как решить проблему.

m0Hze
26.06.2009, 21:51
img_resize('откуда','куда',высота, шитрина,1,качество(100)).

m0Hze
27.06.2009, 13:03
Чего непонятного? Я тебе написал параметры функций, просто применяй к нужной картинке и всо,заноси в базу адреса маленькой и большой картинки,и выводи.Чо тупить то лишний раз

Pashkela
27.06.2009, 13:34
<pre>
<?php
@set_time_limit(0);
@ini_set("display_errors","1");

function resize($img, $thumb_width, $newfilename)
{
$max_width=$thumb_width;

//Check if GD extension is loaded
if (!extension_loaded('gd') && !extension_loaded('gd2'))
{
trigger_error("GD is not loaded", E_USER_WARNING);
return false;
}

//Get Image size info
list($width_orig, $height_orig, $image_type) = getimagesize($img);

switch ($image_type)
{
case 1: $im = imagecreatefromgif($img); break;
case 2: $im = imagecreatefromjpeg($img); break;
case 3: $im = imagecreatefrompng($img); break;
default: trigger_error('Unsupported filetype!', E_USER_WARNING); break;
}

/*** calculate the aspect ratio ***/
$aspect_ratio = (float) $height_orig / $width_orig;

/*** calulate the thumbnail width based on the height ***/
$thumb_height = round($thumb_width * $aspect_ratio);


while($thumb_height>$max_width)
{
$thumb_width-=10;
$thumb_height = round($thumb_width * $aspect_ratio);
}

$newImg = imagecreatetruecolor($thumb_width, $thumb_height);

/* Check if this image is PNG or GIF, then set if Transparent*/
if(($image_type == 1) OR ($image_type==3))
{
imagealphablending($newImg, false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
imagefilledrectangle($newImg, 0, 0, $thumb_width, $thumb_height, $transparent);
}
imagecopyresampled($newImg, $im, 0, 0, 0, 0, $thumb_width, $thumb_height, $width_orig, $height_orig);

//Generate the file, and rename it to $newfilename
switch ($image_type)
{
case 1: imagegif($newImg,$newfilename); break;
case 2: imagejpeg($newImg,$newfilename); break;
case 3: imagepng($newImg,$newfilename); break;
default: trigger_error('Failed resize image!', E_USER_WARNING); break;
}

return $newfilename;
}

//Пример вызова

resize("foto.jpg", 50, "foto1.jpg");

echo "New picture - foto1.jpg";

?>
</pre>

Ridikh
27.06.2009, 14:06
Pashkela, спасибо работает ;)