Fi1osof 30 июня 2013 0 6
Так как MODX — это не только среда для разработки веб-проектов, а еще и PHP-фреймворк, и в разработке используются не только MODX-объекты, а еще и на чистом PHP пишем, и так как хочу опубликовать уже вторую заметку о чисто ПХП-шной функции, создаю-таки отдельную ветку под это дело. Думаю, кому-нибудь да пригодится.

В этот раз хочу написать заметку про функцию getimagesize. Столкнулся с ней сейчас, когда опять ковырял плагин DirectResize (пара косяков в нем как была два года назад, так до сих пор и есть...).

Так вот, чем же интересна эта функция? Интересна она тем, что не только определяет размер картинки, но еще и определяет ее mime-тип, и формирует HTML-атрибуты WIDTH и HEIGHT.

Вот результат выполнения этой функции:
Array
(
    [0] => 500
    [1] => 331
    [2] => 2
    [3] => width="500" height="331"
    [bits] => 8
    [channels] => 3
    [mime] => image/jpeg
)
6 комментариев
s
shadow 31 января 2016г в 17:19 #
Кстати, столкнулся с задачей подружить bootstrap + lazyload.js + masonry.js (или isotope.js), а для этого должны выставляться размеры в теге изображения. Удивлен, что ни один ресайзер (или в доках не описано?) не выставляет таких плейсхолдеров как [[+width]] и [[+height]]. Странно. Такая редкая необходимость?
PS вообще, хороших ресайзеров, с тонкой настройкой качества изображения, работой с источником файлов и кучей полезных плейсхолдеров на все случаи жизни то и нет. Кажется, что такого инструмента очень не хватает. (к вопросу modx.pro/help/7282/ ) Изображения ( в плане качества генерируемых преваьюшек) штука весьма специфическая…
Fi1osof1
Fi1osof 31 января 2016г в 17:40 #
С ресайзерами очень много тонкостей. Для себя давно уже использую собственный сниппет на базе imagick. Умеет сейчас гораздо меньше того же phpThumbOf, но для меня более предсказуемый и умеет то, из-за чего и пришлось его писать, так как phpThumbOf просто не справляется с некоторыми задачами (правильное заполнение при zc с альбомными и панормаными картинками).
Но в паблик это не известно когда появится и появится ли вообще.
s
shadow 31 января 2016г в 17:49 #
Ввиду того, что поисковики весьма строго ранжируют сайты и за вес изображений в т.ч., качество превьюшек и возможность настроек очень насущная проблема. Если кто то будет готов представить серьезный по возможностям инструмент, то готов буду участвовать материально. Краудфандинг ли, или просто частная договоренность, но тема нужная.
К вашим «правильное заполнение при zc с альбомными и панорамными картинками» добавить бы источники файлов, выбор- кеширование\статичная картинка и т.п. и т.д)) ....
Fi1osof1
Fi1osof 31 января 2016г в 18:13 #
Вы можете составить подробный список пожеланий к такому компоненту, можно будет его использовать за основу под публичный компонент. Хоть мой компонент и не умеет много, но как практика показывает, совсем много и не надо. Но для меня наиболее частая задача — это подготовка конечной JPEG-картинки из нескольких прозрачных слоев (PNG, GIF и т.п.). Часто на сайтах используются красивые плашки под картинками, и чтобы эти картинки работали, приходится загружать ПНГшки, которые значительно тяжелей джпега. И вот моя задача — брать ПНГшку, ресайзить ее, накладывать на плашку и выдавать конечный джпег. Активно использовал его здесь: www.drovyanka.ru/ (правда там плашки нет, но где-то я их уже делал, просто не помню).
Вторая задача — это ЧПУ. Пути типа www.drovyanka.ru/assets/components/imagick/cache/9d79b3f27487d9803c67d728a5b95ec7.jpg — не круто, ибо простая смена параметров — сразу изменение и пути. В итоге можно кучу дублей картинок наплодить и 404-ых. По моим наблюдениям поисковики вообще плохо кушают подобные пути. В итоге я стал делать так, например: www.radimax.ru/gallery/portfolio/big/64/588.jpg
Здесь уже абсолютная ссылка, но на самом деле это опять-таки идет на ресайзер, только через подмену УРЛов на уровне сервера. А там и параметры прописаны. То есть можно менять параметры ресайза, но адрес из-за этого уже не страдает. Но .htaccess или nginx-конфиги править не очень удобно, потому хочу запилить эту подмену в пакет на уровне плагина. Да, отдача через MODX дольше, но зато универсальней и проще. А кому быстрее надо будет — смогут подмену прописать уже на уровне конфигурации сервера.
s
shadow 31 января 2016г в 18:23 #
Ок. Свои хотелки (вероятно избыточные) сформулирую. Ибо как доходит до developers.google.com/speed/pagespeed/insights/, то «боль и слезы»)) Очень нужен компромисс качества и веса, это в самую первую очередь. Конечно, нужных настроек и работу с источниками файлов, что и предстоит вспомнить из насущного. (пока повторяю одно и то же как мантру, извиняюсь).
s
shadow 31 января 2016г в 17:31 #
PPS Всем лентяям: готовый модификатор modx.com/extras/package/imgattr с getimagesize, выставляющий соответствующие плейсхолдеры
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.