Реклама на сайте Advertise with us

Как уменьшить картинки на сервере?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Дегенератор идей

С нами с 09.11.03
Сообщения: 2116
Рейтинг: 986

Ссылка на сообщениеДобавлено: 17/03/05 в 21:32       Ответить с цитатойцитата 

Долбанутый спон выкладывает картинки с разрешением 3000x3000. Бред.
Задача: уменьшить все картинки в директории у меня на серваке до 600 пикселей по большей стороне.
Знаю, что GD это должен делать с легкостью.
Если, кто посоветует фришный скрипт или дешевый и ненавороченный платный, или даст дельный совет буду предельно благодарен.
Нашел то, что надо на -ttp://services.xyzsite.ru/ Но со мной так никто и не связывается по поводу оплаты, а надо срочно.

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 17/03/05 в 23:14       Ответить с цитатойцитата 

Код:

$max_width=ширина тумбы;
$max_height=высота тумбы;
$image=путь к оригиналу ;
$thumbshere=сюда сгенеринную тумбу;

$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) )
{
$tn_width = $width;
$tn_height = $height;
}
elseif (($y_ratio * $width) < $max_width)
{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
elseif (($x_ratio * $height) < $max_height)
{
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else
{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromJpeg($image);
$dst = imagecreatetruecolor($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
ImageJpeg($dst,$thumbshere,60);//качество 60
ImageDestroy($src);
ImageDestroy($dst);


вот так можно с помощью GD , но получаеться конечно херово icon_smile.gif

лучше с имейджмежика конверить , например так :

Код:

exec('/usr/local/bin/convert  -quality качество -compress JPEG -sample
     ширинаxвысота путь_к_оригиналу путь_куда_тумбу_ложить');

1
 

Best4U.Biz

С нами с 21.02.04
Сообщения: 1252
Рейтинг: 1441

Ссылка на сообщениеДобавлено: 18/03/05 в 00:45       Ответить с цитатойцитата 

mr.GOD писал:
Код:

$max_width=ширина тумбы;
$max_height=высота тумбы;
$image=путь к оригиналу ;
$thumbshere=сюда сгенеринную тумбу;
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if ( ($width <= $max_width) && ($height <= $max_height) )
{
$tn_width = $width;
$tn_height = $height;
}
elseif (($y_ratio * $width) < $max_width)
{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
elseif (($x_ratio * $height) < $max_height)
{
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else
{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = ImageCreateFromJpeg($image);
$dst = imagecreatetruecolor($tn_width,$tn_height);
ImageCopyResampled($dst, $src, 0, 0, 0, 0,
$tn_width,$tn_height,$width,$height);
ImageJpeg($dst,$thumbshere,60);//качество 60
ImageDestroy($src);
ImageDestroy($dst);

вот так можно с помощью GD , но получаеться конечно херово icon_smile.gif

А если так - то более-менее прилично icon_smile.gif

PPC - не думай о конвертации | Pay Per Lead/Action - то, во что эволюционируют ППС | лучший хостинг

1
 

Дегенератор идей

С нами с 09.11.03
Сообщения: 2116
Рейтинг: 986

Ссылка на сообщениеДобавлено: 18/03/05 в 02:24       Ответить с цитатойцитата 

не работает у меня первый скрипт icon_sad.gif
не совсем понял как параметры вставлять.
вот например надо все картинки из папки /home/domain1/pics/ уменьшить в папку /home/domain1/pics/1/
должно выглядеть так ?

$image=/home/domain1/pics/ ;
$thumbshere=/home/domain1/pics/1/;

0
 



С нами с 22.07.04
Сообщения: 361
Рейтинг: 308

Ссылка на сообщениеДобавлено: 18/03/05 в 02:46       Ответить с цитатойцитата 

Поделюсь прикольным ноу-хау по ресамплу, благо я его сам где-то стырил icon_smile.gif
Код:

<?php
function image_createThumb($src,$dest,$maxWidth,$maxHeight,$quality=100) {
    if (file_exists($src)  && isset($dest)) {
        // path info
        $destInfo  = pathInfo($dest);

        // image src size
        $srcSize   = getImageSize($src);

        // image dest size $destSize[0] = width, $destSize[1] = height
        $srcRatio  = $srcSize[0]/$srcSize[1]; // width/height ratio
        $destRatio = $maxWidth/$maxHeight;
        if ($destRatio > $srcRatio) {
            $destSize[1] = $maxHeight;
            $destSize[0] = $maxHeight*$srcRatio;
        }
        else {
            $destSize[0] = $maxWidth;
            $destSize[1] = $maxWidth/$srcRatio;
        }

        // path rectification
        if ($destInfo['extension'] == "gif") {
            $dest = substr_replace($dest, 'jpg', -3);
        }

        // true color image, with anti-aliasing
        $destImage = imageCreateTrueColor($destSize[0],$destSize[1]);
        imageAntiAlias($destImage,true);

        // src image
        switch ($srcSize[2]) {
            case 1: //GIF
            $srcImage = imageCreateFromGif($src);
            break;

            case 2: //JPEG
            $srcImage = imageCreateFromJpeg($src);
            break;

            case 3: //PNG
            $srcImage = imageCreateFromPng($src);
            break;

            default:
            return false;
            break;
        }

        // resampling
        imageCopyResampled($destImage, $srcImage, 0, 0, 0, 0,$destSize[0],$destSize[1],$srcSize[0],$srcSize[1]);

        // generating image
        switch ($srcSize[2]) {
            case 1:
            case 2:
            imageJpeg($destImage,$dest,$quality);
            break;

            case 3:
            imagePng($destImage,$dest);
            break;
        }
        return true;
    }
    else {
        return false;
    }
   
}

image_createThumb("/path/to/source.jpg", "/path/to/dest.jpg", 600, 600);
?>

Что-то подсказывает мне, что способ определения большей стороны тебе уже дали icon_smile.gif

1
 



С нами с 07.06.00
Сообщения: 3516
Рейтинг: 1802

Ссылка на сообщениеДобавлено: 18/03/05 в 04:47       Ответить с цитатойцитата 

dimonka писал:
Поделюсь прикольным ноу-хау по ресамплу, благо я его сам где-то стырил icon_smile.gif


Добавить сюда еще стандартный перебор файлов в каталоге -- и вполне рабочий вариант получится

Код:
<?php
$images_dir = 'home/.../gallery/';
$thumbs_dir = 'home/.../gallery/th/';
function is_pic($str){
  $pic_types ='jpeg|jpe|jpg|gif|png';
  if(eregi("\.($pic_types)$", $str)) return true;
return false;
}
if ($handle = opendir($images_dir)) {
   while (false !== ($file = readdir($handle))) {
       if (($file != "." && $file != "..") &&  is_pic($file)) {
          image_createThumb($images_dir.$file, $thumbs_dir.$file, 600, 600);
       }
   }
   closedir($handle);
   echo 'ALL Done'; 
}

?>

Elitist Club и Adult Yellow Pages

1
 

Best4U.Biz

С нами с 21.02.04
Сообщения: 1252
Рейтинг: 1441

Ссылка на сообщениеДобавлено: 18/03/05 в 14:10       Ответить с цитатойцитата 

maul писал:
не работает у меня первый скрипт icon_sad.gif
не совсем понял как параметры вставлять.
вот например надо все картинки из папки /home/domain1/pics/ уменьшить в папку /home/domain1/pics/1/
должно выглядеть так ?
$image=/home/domain1/pics/ ;
$thumbshere=/home/domain1/pics/1/;

Это был вариант на 1 картинку. Т.е. :
$image=/home/domain1/pics/1.jpg;
$thumbshere=/home/domain1/pics/1/1small.jpg;

Ну а вариант с перебором каталога тебе уже дали icon_smile.gif

PPC - не думай о конвертации | Pay Per Lead/Action - то, во что эволюционируют ППС | лучший хостинг

1
 



С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987

Ссылка на сообщениеДобавлено: 18/03/05 в 21:04       Ответить с цитатойцитата 

Если хочешь могу дать ссылку на статью по perl, правда там используется image:magik.

1
 



С нами с 07.10.03
Сообщения: 5194
Рейтинг: 3325


Передовик Master-X (16.07.2014)
Ссылка на сообщениеДобавлено: 18/03/05 в 21:23       Ответить с цитатойцитата 

maul писал:
Долбанутый спон выкладывает картинки с разрешением 3000x3000. Бред.
Задача: уменьшить все картинки в директории у меня на серваке до 600 пикселей по большей стороне.
Знаю, что GD это должен делать с легкостью.
Если, кто посоветует фришный скрипт или дешевый и ненавороченный платный, или даст дельный совет буду предельно благодарен.
Нашел то, что надо на -ttp://services.xyzsite.ru/ Но со мной так никто и не связывается по поводу оплаты, а надо срочно.


Оффтопик: что за спонсор ? А на хуизе ася суппорта с ноября заглохла. на мыло не писал

1
 

Дегенератор идей

С нами с 09.11.03
Сообщения: 2116
Рейтинг: 986

Ссылка на сообщениеДобавлено: 20/03/05 в 00:53       Ответить с цитатойцитата 

Всем спасибо.
Отдельное спасибо dimonka и sAx. Их совмещенный скрипт работает отлично.

0
 



С нами с 07.06.00
Сообщения: 3516
Рейтинг: 1802

Ссылка на сообщениеДобавлено: 20/03/05 в 03:26       Ответить с цитатойцитата 

maul писал:
Всем спасибо.
Отдельное спасибо dimonka и sAx. Их совмещенный скрипт работает отлично.

и тебе спасибо на добром слове icon_smile.gif
я уже раньше как-то говорил, сходи на http://php.amnuts.com/ -- там много полезных вещей есть.



maul писал:
... Нашел то, что надо на -ttp://services.xyzsite.ru/ Но со мной так никто и не связывается по поводу оплаты, а надо срочно.

так оно, наверное, и к лучшему icon_razz.gif Сами денег не захотели.

Elitist Club и Adult Yellow Pages

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »