Для заметки. Если вам нужно уменьшить картинку или фотографию в php, то в этом поможет встроенная библиотека для работы с изображениями – GD, "php_gd2".
Для ее включения достаточно в php.ini убрать комментарий в виде «;» перед extension=php_gd2.dll и перезагрузить веб-сервер.
Функция может уменьшать изображения таких форматов: jpg, gif, png и bmp.
Ну, и самое главное - это пример:
<?php
function resize ($filename, $size)
{
$pref = 'mini_';
$img = strtolower(strrchr(basename($filename), "."));
$imgname = basename($filename);
$formats = array('.jpg', '.gif', '.png', '.bmp');
if (in_array($img, $formats))
{
list($width, $height) = getimagesize($filename);
$new_height = $height * $size;
$new_width = $new_height / $width;
$thumb = imagecreatetruecolor($size, $new_width);
switch ($img)
{
case '.jpg': $source = @imagecreatefromjpeg($filename); break;
case '.gif': $source = @imagecreatefromgif($filename); break;
case '.png': $source = @imagecreatefrompng($filename); break;
case '.bmp': $source = @imagecreatefromwbmp($filename); break;
}
imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $new_width, $width, $height);
switch ($img)
{
case '.jpg': imagejpeg($thumb, $pref.$imgname); break;
case '.gif': imagegif($thumb, $pref.$imgname); break;
case '.png': imagepng($thumb, $pref.$imgname); break;
case '.bmp': imagewbmp($thumb, $pref.$imgname); break;
}
}
else return 'Error';
@imagedestroy($thumb);
@imagedestroy($source);
return $imgname;
}
echo '<img src="mini_'.resize('http://www.webnotes.com.ua/demo/img-resize/test.jpg',200).'" />';
?>
В строке 35 выводим изображение, где в пути источника «src» вызываем функцию resize с двумя параметрами: полным путем к картинке и шириной выходного изображения.
В результате работы функции будет создано сжатое изображение с именем mini_test.jpg, и функция вернет имя входящего изображения - test.jpg. Вот для этого мы и подставляем префикс «mini_» в «src». Конечно, можно было бы и в функцию подставить префикс и возвратить новое имя файла, но мне так было удобней.
Рассматривать полностью функцию я не буду, так как там нет ничего сложного и в интернете похожего хватает.
Рабочий пример: уменьшения картинки на php.
Удачи!

(голосов 6, в среднем: 4.67 из 5)
#1 - Сентябрь 24th, 2009 at 15:18
Все хорошо, но не совсем понятно, от куда будут браться данные картинки…
#2 nice - Сентябрь 24th, 2009 at 16:08
Чем не подходит «В строке 35 выводим изображение, где в пути источника «src» вызываем функцию resize с двумя параметрами: полным путем к картинке и шириной выходного изображения» ?
#3 - Март 14th, 2011 at 17:12
Я для работы с изображениями советую использовать class.upload.php. Очень мощная библиотека! Всем советую!
#4 - Декабрь 8th, 2011 at 22:11
$tmp_name – полное имя файла картинки которую нужно обрезать
$new_name – полное имя нового файла, но без расширения, оно допишеться автоматом
$resolution_width – максимум по ширине (пиксели)
$resolution_height – максимум по высоте (пиксели)
$max_size максимальный размер обрабатывеамой фотки
скрипт с моей CMS [url="http://xdroid.org.ua/"]CMS xDroid[/url]
[code]//создаём функцию для уменьшения изображений-------------------------------------------------------------------------------------------------------------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
function images_size($tmp_name, $new_name, $resolution_width, $resolution_height, $max_size){
//проверяем размер файла
$image_size = filesize($tmp_name);
$image_size = floor($image_size / '1048576') ;
if($image_size $resolution_width || $params['1'] > $resolution_height) {
//пишем фото --------->
//получаем нужные переменные
switch ($params['2']) {
case 1: $old_img = imagecreatefromgif($tmp_name); break;
case 2: $old_img = imagecreatefromjpeg($tmp_name); break;
case 3: $old_img = imagecreatefrompng($tmp_name); break;
case 6: $old_img = imagecreatefromwbmp($tmp_name); break;
}
//вычисляем новые размеры
if($params['0'] > $params['1']) {
$size = $params['0'] ;
$resolution = $resolution_width;
}
else {
$size = $params['1'] ;
$resolution = $resolution_width * $params['1'] / $params['0'];
}
$new_width = floor($params['0'] * $resolution / $size) ;
$new_height = floor($params['1'] * $resolution / $size) ;
//создаём новое изображение
$new_img = imagecreatetruecolor($new_width, $new_height) ;
imagecopyresampled ($new_img, $old_img, 0, 0, 0, 0, $new_width, $new_height, $params['0'], $params['1']) ;
//сохраняем новое изображение----->>>>>>
//определяем тип изображения
switch ($params['2']) {
case 1: $type = '.gif'; break;
case 2: $type = '.jpg'; break;
case 3: $type = '.png'; break;
case 6: $type = '.bmp'; break;
}
//Сохраняем
$new_name = "$new_name$type" ;
switch ($type) {
case '.gif': imagegif($new_img, $new_name); break;
case '.jpg': imagejpeg($new_img, $new_name, 100); break;
case '.bmp': imagejpeg($new_img, $new_name, 100); break;
case '.png': imagepng($new_img, $new_name); break;
}
$message = ('Изображение добавлено') ;
}
//если не нужно обрезать-------------------->>>>>>>>>>>>>>>>>>>>>>>
else {
//сохраняем новое изображение----->>>>>>
//определяем тип изображения
switch ($params['2']) {
case 1: $type = '.gif'; break;
case 2: $type = '.jpg'; break;
case 3: $type = '.png'; break;
case 6: $type = '.bmp'; break;
}
//Сохраняем
$new_name = "$new_name$type" ;
copy($tmp_name, $new_name);
$message = ('Изображение добавлено') ;
}
}
else $errors = ('Слишком большой размер') ;
return($message);
return($errors);
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<-------------------------------------------------------------------------------------------------------[/code]