WEBP в PHP

WEBP (31.41КиБ)

Когда я делал биндинг GD для языка «Гугл Гоу», заметил, что в ПХП появилась поддержка формата WEBP. О самом формате как-нибудь в другой раз (пока можно почитать «Википедию»), скажу только, что многообещающий формат картинок для веба, который в настоящий момент поддерживается «Хромом» и «Оперой» (а в ФФ можно дёшево добавить поддержку через Джаваскрипт).

Чтобы поддержка формата (пока довольно куцая) появилась, нужно установить библиотеку libvpx и пересобрать ПХП с ключом —with-vpx-dir. У меня на «Маке» это выглядит так:

./configure --with-vpx-dir=/usr/local/Cellar/libvpx/1.1.0 \
… остальные опции
make
sudo make install

Правда в phpinfo информация как у меня на картинке не появится (это я сам немного пропатчил исходники), не пугайтесь — так должно быть, проверить наличие поддержки WEBP можно следующим образом:

var_dump(function_exists('imagewebp'));

Собственно, в языке появятся две новые функции: imagecreatefromwebp и imagewebp. У первой только одни аргумент — имя файла из которого надо создать ресурс GD (по действию ничем не отличается от любой другой подобной функции, например imagecreatefromjpeg), вторая принимает два параметра — ресурс и необязательные имя файла и качество, описание функции полностью совпадает с imagejpeg, с той только разницей, что сохраняет она формат WEBP.

Параметр качества изменяется от 0 до 100 и соотвествует параметру VP8 QP кодека в диапазоне от 1 до 63.

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

SunChaser (sunchaser.info) № 1
разве у него есть преимущества по сравнению с jpeg?
Евгений Степанищев (bolknote.ru) автор № 4
разве у него есть преимущества по сравнению с jpeg?

Да, попробуйте пересохранить пару картинок с текстом в JPEG и WebP и посмотрите. Кроме того, у WebP loseless.

Sarman (sarmanov.com/author/sarman/) № 9
Прикольно, но так утомительно собирать из исходников, если более чем один сервер.
Сложно продавать, короче, всё, что не стандарт интересно, но непрактично, спасибо, буду наблюдать!
Евгений Степанищев (bolknote.ru) автор № 10
Прикольно, но так утомительно собирать из исходников, если более чем один сервер.

Конечно утомительно. Надо собрать пакет и поставить дальше из пакета.

Igor M Podlesny (poige.livejournal.com) № 11

Комментарий для Евгения Степанищева:

По-русски говорят «биндинг», термин устоялся уже.

Устоялся — как и «траффик», «буффер» и «оффис»? А иногда ещё и «граффик»? ;-P

Евгений Степанищев (bolknote.ru) автор № 13
Комментарий для poige.livejournal.com:

Ровно по той же причине, почему по-русски не «оффис», а «офис», в русском сейчас «биндинг», а не «байндинг».
www.devhelper.ru № 14
Доброй ночи, мой сайт http://www.devhelper.ru схожей тематики с Вашим блогом, давайте обменяемся ссылками или еще как-нибудь посотрудничаем.
Евгений Степанищев (bolknote.ru) автор № 15
Доброй ночи! Кнопки и обмен ссылками всё-таки в 90-х остались, туда им и дорога :) Если буду вас регулярно читать, то упомяну.