Как стать автором
Обновить

Комментарии 70

image size - save for web в photoshop
если делать превьюшки наплевав на размер - то подойдет абсолютно, что угодно. если же думать о юзерах, то приходится жертвовать качеством. раздражает, когда превьюшка 180x120 весит 300Kb
хорош минусовать, не было в первоначальном топике слов "со стороны веб-сервера" ))
Осмелюсь поправить: «Red Hat» и в тегах «imagemagic» без «k».
Так, со вторым ошибся.
Раньше делал в FireWorks, но когда объемы выросли до 100000 фоток - задумался и написал на Delphi утилитку. Тупая как дерево, зато работает быстро :)
если не из консоли, то и IrfanView прекрасно делает пакетную обработку
У него куча опций командной строки, массовую обработку файлов там тоже можно делать.
Конечно пользуюсь, мне просто надо было водяной знак наложить и кажется сверху скруглить края.
Похоже возникло недопонимание, подправил первый абзац чтобы его устранить. Речь идет о софте работающем на стороне веб-сервера.

P.S. за RedHat спасибо.
а! :)
Мне обычно необходимо чтобы превьюшки делались на лету прямо на сервере, а значит мне подходит например GD, но если нет php вы предлагаете поставить jpegtran? Я думаю хостинг откажет в этой услуге, а если я имею возможность поставить все что я хочу, то я опять же вернусь к php & gd
Юзаю PHP+GD. Но в зависимости от задачи, решаю, когда генерить превьюшку - сразу при заливки картинки или на лету. Мне функционала GD вполне достаточно.
А как Вы решили проблему с огромными размерами изображения? У меня они не ресайзились.
Насколько огромными? Просто мне не требовалось обжимать изображения больше 1600*1200. Думаю максимальный размер изображения упирается в настройки web-сервера (php.ini и др.). У меня свои сервера, в случае чего, я могу изменить максимальное время выполнения скрипта или размер выделяемой памяти...
Выделение памяти в php.ini менял - не помогло. Пойду гуглить...
Исходное изображение уже лежит на сервере или загружается через форму? Если второе, то надо проверить параметры web-сервера по максимальному размеру принимаемого файла.
С этим как раз всё нормально - загружается через форму, сохраняется как оригинал на сервере и прогоняется через gd.

Манипуляции с php.ini ни к чему не привели.

В любом случае спасибо за помощь.
Памяти нужно больше выделить.
Для 10-15MPx требуется около 100-150 мегабайт.
Но это явно не выход. Нужно использовать другие инструменты.
Можете посоветовать что-то?
его не надо ставить, он идет в сборке системы вашего хостинга... Тем более на сколько я знаю GD не позволяет делать повороты без перекомпрессии.
это и есть одно из неудобств gd.
а как его запустить из php-скрипта?
как и все системные команды... например exec("jpegtran ...",$out);
ИМХО больше чем на половине хостингов вызов внешних программ из скриптов запрещен в целях повышения безопасности
НЛО прилетело и опубликовало эту надпись здесь
парсер лох
Чем вам посмотреть профиль parser не угодил? :)
На shared-хостинге пошлют с такой инициативой и будут правы.
Как у утилиты со степенью сжатия? Получаются ли картинки приличного качества при небольшом размере?
GD в этом плане серьезно хромает...
Почему же пошлют ? Мне думается, что вызывая внешние утилиты для работы с изображениями вы наоборот снижаете нагрузку. Т.к. gd переваривать большие картинки не в состоянии.
Тут другой нюанс: на shared-хостинге не разрешат пользоваться внешней программой, потому как прецендент и потенциальная дырка в безопасности.:)
А свой сервер далеко не у всех есть, как и VDS.
Хм, я на своем шаред хостинге из пхп скрипта вызываю консольный mysql без особых проблем. Возможно дело в правильности настройки сервера.
Использую php + gd

*Пошел смотреть описанную утилитку*
PIL и никаких проблем. Всё делает.
Согласен, все ест (jpeg, png, gif), прост в использовании, но походу все еще мало людей используют python.
аналогично
Пользуюсь ImageCache в Drupal. Генерирует картинку автоматически при первом обращении и складывает на диск, при втором и более обращении отдает уже готовый ранеесгенеренный имг.

Сам ImageCache использует php + gd :).
Сам ImageCache использует php + gd :).
)) это поясните
Ну если отвечать на вопрос "чем я непосредственно делаю ногти", то я пользуюсь модулем к Drupal'у.

А если говорить в контексте технологии, которая в конце-концов используется для изменения изображения, то я написал что модуль для этого использует php + gd, добавляя ко всему этому кеширование один раз созданного изображения.

Надеюсь пояснил :).
Изломал глаз, но ресайза не нашел.
а imagemagick'а на хостере тож не было?
если есть то можно же было convert запользовать...
картинки phpThumb-ом "налету" можно неплохо подгатавливать. оно канеш может быть дико медленно, но там где объем работ небольшой подойдет идеально
thumbnail_create.php
больше двух лет стоит в проекте и каждый день ресайзит и ресайзит без проблем изображения любого размера+куча эффектов+сам простой и компактный
thumbnail_create.php

делись кодом :)
гугле первой ссылкой)
http://www.phpclasses.org/browse/package/1007.html
Вызываю консольный mogrify, который через system вызывается из perl / php скриптов. Решение не подойдет для тех, у кого на хостинге php в безопасном (safe) режиме, а так имхо самый оптимальный вариант.
C jpeg все хорошо. А как насчет png и gif?
<мысли_вслух>
если честно, то не сталкивался еще с хостингом, где нет ImageMagic. Я на парсере, конечно, не ваяю, юзаю Perl. И везде чудно справляется утиль convert. Либо же вручную ImageMagic юзать. Как то даже в голову не приходила мысль, что с этим будут проблемы.
Так же php+GD есть практически везде, это уже как стандарт де-факто.
</мысли_вслух>
да уж... хостер на котором нет perl, gd и imagemagick
наверное, народ точка ру
Для Mac OS X есть замечательная встроенная утилита sips:
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/sips.1.html

Например $ sips -Z 100 photo.jpg, создаст thumbnail с максимальной стороной в 100 пикселей.
php + gd - одно плохо: начиная с 1,6 версии gd не обрабатывает gif формат.

ИМХО лучше сразу заливать два файла - оригинал и thumb
юзайте gd2, на дворе 2008 год
вы это хостерам говорите :)
а вы голосуйте ногавми, нечего лентяев поощрять
Смотрю каменты... только и видно php+gd... Складывается нехорошее впечатление, что тут только один использует php+ImageMagick...

Неужели этолько я это и использую?!
НЛО прилетело и опубликовало эту надпись здесь
Ну слава богу... а уж подумал было... Просто не раз спрашивал у знакомых и оказывается, что юзают обычно PHP+GD1/2.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
"Однако буквально неделю назад моё сознание снова заставило меня кинуться в поиски идеального решения..."

А чем Nconvert не угодил то?
Всё по старинке, /image.php?file=file.jpg&w=100&h=65... PHP+GD :)
Ресайз пишется в кэш-папку, и если такой запрос уже был — выдаётся сразу.
Для не сильно нагруженных проектов — неплохо.
При современном обилии утилит стоит вопрос ни чем уменьшать, а какая утилита дает хороший результат с точки зрения качества.
Тут ImageMagick продвинулся намного дальше конкурентов. http://imagemagick.org/script/index.php
Есть реализации для php: MagickWand for PHP, IMagick. Есть для perl и для других языков.

Я выбрал MagickWand и остался доволен. Там есть некоторые проблемы с установкой под linux, но решение проблемы я уже давно описал на
http://datexp.com/linux/magickwand_install.htm

Там не только ресайзить, резать, наводить резкость, наносить водные знаки, но и подписывать можно любым true type или adobe type или free type шрифтом, много фотошоповского функционала.

Я хотел статью написать по обработке фоток на php да весу на хабре не хватает может кому интересно - поддержит.
Поддержим, пишите.
Спасибо что поддержали, статью уже разместил: Фотошопим на PHP
Пожалуйста. :) Хоть и самого минусонули после предыдущего комментария, рад, что помог вам опубликовать хороший материал. Пишите ещё. ;)
Использовал perl + Imager. Модуль имеет больше удобства и возможностей по сравнению с GD, правда проигрывая по по возможностям ImageMagick. Но не это главное преимущество. Решающим для меня оказалась скорость (пошустрее im), а самое главное не такой жадный до памяти. Приходилось в свое время обрабатывать 100Мб-ные tiff'ы - делать из них thumbnail'ы. Так вот при обработке таких изображений (фотки) удалось поблизить использование памяти к в 1,5-2 раза больше размера файла изображения (то есть для 100мб-ного изображения требовалось ~200мб ОЗУ). В im бывало и десятикратное увеличение (то есть для 100мб - 1Гб ОЗУ) :)
В большинстве случаев, конечно, вряд ли кто будет обрабатывать такие большие изображения :) Однако, на многих хостингах стоит ограничение в 30мб на процесс. Таким образом ваш скрипт может обломаться на изображениях и в 100кб - если это jpeg, но изображение 2 000 на 3 000 точек, в памяти это займет 24 Мб (2000*3000*4байт/пиксел), а у вас еще другие данные...
Подскажите пожалуйста, чем лучше нарезать на кусочки фиксированного размера (256x256) очень большую картинку (tiff) с разрешением 17002x19002 точек (750мб), и еще одну картинку 27000x20000 (на 1.56гб).
Можно на php, можно из командной строки unix, win ... хоть как-нибудь, но автоматизировать нарезку (операция делается разово - 1 раз в 2 года)
convert из ImageMagick у меня на первой картинке уходит думать в вечность,
а на второй просто вылетает по недостатку памяти.
Фотошоп открывает, но там я не знаю, как это автоматизировать.
nconvert + небольшой скрипт
а я пользуюсь вообще модулем ImageCache на Drupal, не надо писать дополнительный скррипт. Делает из любой картинки на сайте то что нужно :-). Может не совсем удобно для гиков, но как решение для сайтов, и обычных пользователей очень даже.
Пользователь загружает изображение, неважно какого размера, из него делается ресайз (для пользователя все равно, он уже нажал отправить и забыл), кроп, выравнивание (все это задается в профиле, причем профилей можно сделать сколько угодно. допустим один профиль делает картинки 100x100 другой 300x400 для полной новости, а для блока где нить 50x50 и т.д.) все это на лету выполнятеся. Если вы вдруг решили что 100x100 мелковато, нет проблем, заходите в профиль, пишете 120x120 и скидываете кеш. Вау ..все картинки во всех опубликованных статьях (там где были 100x100) стали 120x120. Представляете какая гибкость.
Захотели редизайн, а страшно браться ибо 25 000 статей, в тизере которых изображение... нет проблем, занимает 5 мин. В общем минимальные временные затраты, при результате, который 90% пользователей сочтут отличными.
Как гласит принцип "Бритва О
Подытожу... адекватных средств кроме тех что я перечислил способных на работу с jpeg без перекомпрессии нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории