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

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) 2012

разве у него есть преимущества по сравнению с jpeg?

kamazoh 2012

«...нужно установить библиотеку libvpx и *пересобрать собрать* ПХП...»

Евгений Степанищев (bolknote.ru) 2012

Комментарий для kamazoh:

Спасибо!

Евгений Степанищев (bolknote.ru) 2012

Комментарий для sunchaser.info:

разве у него есть преимущества по сравнению с jpeg?

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

Bagir 2012

как корелируют значения от 0 до 100 с vpx от 1 до 63?

Евгений Степанищев (bolknote.ru) 2012

Комментарий для Bagir:

http://pastebin.com/CZvLb0CD

Igor M Podlesny (poige.livejournal.com) 2012

Когда я делал биндинг GD

«байндинг», тогда уж… :)

Евгений Степанищев (bolknote.ru) 2012

Комментарий для poige.livejournal.com:

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

Sarman (sarmanov.com/author/sarman/) 2012

Прикольно, но так утомительно собирать из исходников, если более чем один сервер.
Сложно продавать, короче, всё, что не стандарт интересно, но непрактично, спасибо, буду наблюдать!

Евгений Степанищев (bolknote.ru) 2012

Комментарий для sarmanov.com/author/sarman/:

Прикольно, но так утомительно собирать из исходников, если более чем один сервер.

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

Igor M Podlesny (poige.livejournal.com) 2012

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

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

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

Евгений Степанищев (bolknote.ru) 2012

Комментарий для poige.livejournal.com:

Нет, иначе.

Евгений Степанищев (bolknote.ru) 2012

Комментарий для poige.livejournal.com:

Ровно по той же причине, почему по-русски не «оффис», а «офис», в русском сейчас «биндинг», а не «байндинг».

www.devhelper.ru 2012

Доброй ночи, мой сайт http://www.devhelper.ru схожей тематики с Вашим блогом, давайте обменяемся ссылками или еще как-нибудь посотрудничаем.

Евгений Степанищев (bolknote.ru) 2012

Комментарий для http://www.devhelper.ru:

Доброй ночи! Кнопки и обмен ссылками всё-таки в 90-х остались, туда им и дорога :) Если буду вас регулярно читать, то упомяну.