Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> imagejpeg, как определить quality, чтобы сохранить картинку с нужным размер 
:(
    Опции темы
Dave
Дата 19.9.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 17.6.2004

Репутация: нет
Всего: 1



Приветствую !

грузятся картинки на сервер через форму,
нужно чтобы размер загружаемой картинки был 4 Мб максимум, 
в случае если она больше 4Мб то уменьшить  ее размер до 4-х Мб.

пытаюсь делать так:
Код

       $maxsize = 1*1024*1024;
    $im = imagecreatefromjpeg($_FILES['photo']['tmp_name']);
    $quality = 100;// дефолтное качество с каким сохраняем картинку
    $filesize = filesize($_FILES['photo']['tmp_name']);
    if ($filesize>$maxsize)
    {
        $num = ($filesize/$maxsize);// определяем во сколько раз она больше чем $maxsize
        $quality = $quality/$num;//ну и во столько же раз ухудшаем quality
    }
    imagejpeg($im,'2.jpg',$quality);    


в результате получается если картинка больше в 2 раза и я ее сохраняю с качеством 50 то размер картинки уменьшается более чем в 2 раза на самом деле, т.е. из ~2Мб должно было ( как  я думал smile )   стать ~1Mb, но в результате стало около 380Kb.

Наверное качество с каким сохранять должно как то по другому определятся...
подскажите, плз.

PM MAIL   Вверх
Ипатьев
Дата 19.9.2009, 18:13 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



Думаю, надо добавить в формулу размеры картинки. 
Но мне кажется не очень удачной идеей уменьшать размер файла за счет качества
До 60 еще ладно, но если меньше, то лучше уменьшать размеры.
PM MAIL   Вверх
skyboy
Дата 19.9.2009, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



в jpeg получаемый размер от параметра "качество" зависит не прямо и зависимость эта нелинейная. также получаемый размер картинки при заданном параметре "качество" сильно зависит от содержимого.
потому рассчитать параметр "качество", зная конечный размер файла, можно только перебором.
кроме того, при низком качестве лучше уж уменьшать размер картинки. как и сказал Ипатьев.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.1109 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.