Просмотр поста

.
ValekS
Ей 25

erricss, на всякий случай кину свой вариант. Смотри, вот сама функция:

Нажми на меня (+/-)
function resize_image($image, $size = 150) {
define('DS', DIRECTORY_SEPARATOR);

// папка для сохранения превьюшек
$dir = 'tmp';

// имя превьюшки
$name = pathinfo($image);
$name = basename($image, '.'.$name['extension']);
 
if(!is_dir($dir)) {
mkdir($dir, 0777, 1);
}
 
if ($image) {
$info = @getimagesize($image);

if ($info) {
if ($info[2] > 3) {
echo '<div>Не верный тип файла!</div>';
} else {                      
switch ($info[2]) {
case 1:
$function = 'imagecreatefromgif';
break;

case 2:
$function = 'imagecreatefromjpeg';
break;

case 3:
$function = 'imagecreatefrompng';
break;
}

$image = $function($image);
}

$x = imagesx($image);
$y = imagesy($image);
 
} else {
echo '<div>Файл не найден!</div>';
}
 
$filename = $dir . DS . $name . '.jpg';
 
// пропорционально уменьшить по ширине до 240
if ($y > $size) {
$newx = $size;
$newy = $y * ($size / $x);
} else {
$newx= $x;
$newy = $y;
}
 
$newimg = imagecreatetruecolor($newx, $newy);
 
if ($info[2]==3) {
// прозрачность для png
imagefill($newimg, 0, 0, imagecolorallocate($newimg, 255, 255, 255));
} elseif ($info[2]==1) {
// прозрачность для gif    
imagecolortransparent($image, imagecolorallocate($image, 255, 255, 255));    
}
 
imagecopyresampled($newimg, $image, 0, 0, 0, 0, $newx, $newy, $x, $y);  

@imagejpeg($newimg, $filename, 100);
 
} else {
return false;
}
}


А вот так её надо использовать:
if (!file_exists(ROOTPATH . 'tmp/27_2.jpg'))
resize_image(ROOTPATH . 'files/board/27_2.jpg');

echo '<img src="/tmp/27_2.jpg" />';


Вот это: tmp/27_2.jpg - твоя превьюшка. Мы проверяем её наличие, если её нет то делаем, а затем выводим. Вот это: files/board/27_2.jpg - оригинальная картинка. Плюс в самой функции вот это:
$dir = 'tmp';
Замени на свою папку с превьюшками.