Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Скрипт уменьшения изображений
Покинул форум
Сообщений всего: 75
Дата рег-ции: Янв. 2011
Помог: 1 раз(а)
Можете дать скрипт который после выбора пользователем картинки сначала проверяет уменьшать ее до определенных размеров(а допустим она такая как и создающая ум. копия тогда не надо ее уменьшать) и потом грузить в директорию.
flashka_
Отправлено: 04 Ноября, 2011 - 05:28:22
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
А зачем проверять?) На тебе скрипт который не будет изменять если картинка меньше тех параметров до которых нужно уменьшать
Функции для пропорционального изменения размера рисунков.
Данная функция обрабатывает JPG, GIF, PNG и BMP, на выходе всегда получается JPG.
Отличительная особенность этой библиотечки является в том, что она умеет обрабатывать картинки формата BMP.
На момент созднания этой функции GD не умела работать с рисунками BMP, не путайте пожалуйста с WBMP.
Кто является создателем функции обработки BMP выяснить не удалось.
К остальным частям функции приложили свои руки многие программисты, в том числе и я (webi.ru), улучшил и упростил использование.
Пример использования :
// открывает картинку 1.jpg и сохраняет ее с новыми размерами в 2.jpg
// 150, 200 ширина и высота новой картинки
// 70 качество нового изображения в процентах
// 0xFFFFF0 цвет фона(если рисунок полуится меньше)
// 0 включить/выключить создание размера изображения, строго по размерам, Если включить, тогда размер изображения всегда будет
таким, как заявлен, а лишнее будет заполняться фоном. Экспериментируйте.
function decbinx($d,$n)
{
$bin=decbin($d);
$sbin=strlen($bin);
for($j=0;$j<$n-$sbin;$j++)
$bin="0$bin";
return $bin;
};
function inttobyte($n)
{
return chr($n);
};
/*##############################################################################
Функция img_resize(): генерация thumbnails
Параметры:
$src - имя исходного файла
$dest - имя генерируемого файла
$width, $height - ширина и высота генерируемого изображения, в пикселях
Необязательные параметры:
$rgb - цвет фона, по умолчанию - белый
$quality - качество генерируемого JPEG, по умолчанию - максимальное (100)
$fon - указывает, если картинка получается меньше указанных размеров, тогда заполнить избыток фоном.
#################################################################################*/
function img_resize($src, $dest, $width, $height, $quality=100, $rgb=0xFFFFFF, $fon=0)
{
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
$quality=(int)$quality; // приводим качество к инту, чтобы не было проблем
$width=(int)$width; // тоже и с размерами
$height=(int)$height;
// если качество меньше 1 или больше 99, тогда ставим его 100
if($quality<1 OR $quality>99)
{
$quality=100;
}
// если вдруг не пришла высота или ширина, тогда размеры будем оставлять как размеры самой картинки, без уменьшения
if(!$width OR !$height)
{
$width=$size[0];
$height=$size[1];
}
// если реальная ширина и высота рисунка меньше, чем размеры до которых надо уменьшить,
// тогда уменьшаемые размеры станут равны реальным размерам, чтобы не произошло увеличение
if($size[0]<$width AND $size[1]<$height)
{
$width=$size[0];
$height=$size[1];
}
if($fon)
{
$idest = imagecreatetruecolor($width, $height); // так создается картинка узаканного размера, а все где картинки нет, заполнится фоном. чтобы так создавать картинку, нижнюю строку надо удалить, а с этой снять комментарии
}
else
{
$new_left = 0;
$new_top = 0;
$idest = imagecreatetruecolor($new_width, $new_height);
}
Покинул форум
Сообщений всего: 75
Дата рег-ции: Янв. 2011
Помог: 1 раз(а)
ооо.сложно..скажите пожалуста а как сделать чтобы сначала загружаемое изображение создавали в других расширениях возможный..а уже потом уменьшали все эти изображения?????
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.