Тормоза GD2

DiMA

php.spb.ru
Команда форума
Тормоза GD2

Написал программу для генерации фотоальбома. В его ходе все фотки уменьшаются до 2-х новых размеров. Все конечно работает, но очень медленно. В 2-4 раза медленне, чем если запускать внешнюю программу типа IrfanView. Есть идеи, как скорость повысить?
 

ONK

Пассивист PHPСluba
Если фотка была в .jpg формате, можно попробовать сохранить её в .png формате. Алгоритм ужимания в .jpg очень тормозной. Но скорей всего основные тормоза происходят на этапе изменения размера, тут можно попробовать протестировать разницу между imagecopyresized() и imagecopyresampled().

Хотя по моему, если в фотоальбом добавлять по одной фотке, то временем на изменение их размера можно пренебречь.
 

DiMA

php.spb.ru
Команда форума
Я пробовал обе функции и даже GD 1 (работает быстрее). Но только imagecopyresampled() и GD2 сжимают фотки без ступенчатого эффекта, а просто норально.
 

Protoss

Guest
Есть идеи, как скорость повысить?
А на фиг их постоянно ужимать ? Храни сразу несколько вариантов , или места жалко? А ужимай только при добавлении........
 

DiMA

php.spb.ru
Команда форума
Я и храню постоянно. Чтобы сжать 100-200 фоток в альбом (каждую по 2 раза до 2х размеров) много времени тратится. Об онлайновом сжатии речи вообще нет...
 

Protoss

Guest
Ну а в чём тогда проблемма ? Сжал фотки на домашнем компе , не обязательно средствами пхп , выложил , и живёшь себе спокойно........
 

Protoss

Guest
Ещё раз - с какого до какого размера надо уменьшать фотки ? Я счас пытаюсь свои фотки ресайзить - они меняются моментально. за 0.467199 с http://soldier.mailgate.ru/andrey.jpg до http://soldier.mailgate.ru . С 1173х768 до 200х200 .
Конечно может я что путаю - с GD я второй раз в жизни пытаюсь что либо сделать.......
 

DiMA

php.spb.ru
Команда форума
с 1600 до 1024 или 200 секунд за 7-10
комп P3 533 и дома AMD 800
 

Protoss

Guest
В пределах допустимого . Я просто на рабочем сервере тестил , который к тому же тогда почти без нагрузки стоял. В таком случае остаётся ресайзить не средствами пхп , видимо пхп под это не сильно заточен.........
 

RomikChef

Guest
Лично я забил полностью на генерацию.
понимаю, что если юзер заливает через веб-форму, то не обойтись, но я свою галерею переделал.
Выкинул из нее весь ресайз, его делаю дома.
и фотки и превьюшки.
потом заливаю их нпо фтп, админка при запуске сканит каталог, находит фотки, которых нет в базе, и выдает список. я их закидываю в галерею.
все.
очень быстро, удобно и качественно


Если хочешь на сервере делать - все равно забей на гд. поставь imagemagick и вызывай convert через exec - ОЧЕНЬ качественно и быстро.
 

RomikChef

Guest
ресайзит и делает превьюшки один батник.
потом ече прохожу один раз по каталогу руками и ротейчу, которые надо
 

RomikChef

Guest
ЗЗЫ, все эти манипуляции дома я как раз imagemagick-ом и делаю
 

RomikChef

Guest
про количество поддерживаемых форматов я вообще молчу.
Хоть из тифа, хоть из бмпа, хоть из авишки даже по-моему, превьюшку сделает
 

DiMA

php.spb.ru
Команда форума
Мне тут подсказали, что существует еще пакет NetPBM (отдельные утилиты). Кто в курсе, какая именно из утилит этого пакета умеет резайзить?
 

DiMA

php.spb.ru
Команда форума
Если это не библиотека пхп, то да, только system() и остается.
 

Кром

Новичок
Нет, не библиотека php.
Тогда на линуксе она может пригрывать imagic и gd. Хотя конечно нужно тестировать.
 
Сверху