За последние 24 часа нас посетили 36566 программистов и 1718 роботов. Сейчас ищут 887 программистов ...

Понижение качества при загрузке.

Тема в разделе "PHP для новичков", создана пользователем Dimon1987, 6 дек 2010.

  1. Dimon1987

    Dimon1987 Активный пользователь

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Доброго времени суток уважаемые программисты.
    Очень нуждаюсь в помощи.
    Второй день не могу найти ничего стоящего на просторах интернета.

    Пишу сайт(для себя) -хранилище изображений ,если грубо.

    Вообщем все бы ничего, только когда закачиваешь фотографии( в среднем 3-5 Мб) :
    1.Сервер их долго загружает с учетом того,что можно закачать одновременно до 100 фотографий- выходит неплохой объем и естественно времени на это уходит прилично- но это не самое важное...
    2.Мой сайт разделен на 2 фрейма:
    Левый и правый.В левом меню располагается навигация( меню+ таблица с маленькими превьюшками изображений) а справа фрейм предназначен для просмотра в полном размере по клику на превьюшку в левом.

    При построении таблицы: к примеру даже 20 фотографий по 3-5 Мб,он просто тупит...

    Как написать скрипт для Понижения качества изображения при ВЫВОДЕ изображения и в таблице с мини изображениями и справа-в режими полного просмотра.Формат файлов: jpeg
    И не лучше ли будет понижать качество в скрипте закачки файлов,нежели перед выводом?

    пробовал через
    PHP:
    1. $size=$filesize($file);
    2. while($size>700000){
    3. imagejpeg($file,$file,75);
    4. }
    Только на мой взгляд это бред...

    И даже если при закачке файлов понижать их качество то каким образом, естественно что при этом должен уменьшаться размер пропорционально( но пропорции это не самое важное)


    Очень прошу помощи.
    Заранее благодарен
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Да вроде нормально. Я бы при закачке - помимо собственно сохранения изображения - создавал бы миниатюру с небольшими размерами и не очень хорошим качеством.

    вот например )
    PHP:
    1.  
    2. <?php
    3.  
    4. function imageresize($outfile,$infile,$neww,$newh,$quality) {
    5.     $im=imagecreatefromjpeg($infile);
    6.     $k1=$neww/imagesx($im);
    7.     $k2=$newh/imagesy($im);
    8.     $k=$k1>$k2?$k2:$k1;
    9.  
    10.     $w=intval(imagesx($im)*$k);
    11.     $h=intval(imagesy($im)*$k);
    12.  
    13.     $im1=imagecreatetruecolor($w,$h);
    14.     $bckgrn = imagecolorallocate($im1, 249, 234,193);
    15.     imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im));
    16.  
    17.     imagejpeg($im1,$outfile,$quality);
    18.     imagedestroy($im);
    19.     imagedestroy($im1);
    20.     }
     
  3. Dimon1987

    Dimon1987 Активный пользователь

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Спасибо огромное за помощь)
    помогло))