Создание изображений WebP при помощи командной строки

Appears in: Ускорение загрузки

В интерактивном уроке уже установлен инструмент webp для командной строки, поэтому никаких подготовительных действий не требуется. Этот инструмент преобразует изображения из форматов JPG, PNG и TIFF в формат WebP.

Преобразование изображений в WebP #

  1. Click Remix to Edit to make the project editable. 1. Click Terminal (note: if the Terminal button does not show you may need to use the Fullscreen option).

  2. Введите следующую команду:

cwebp -q 50 images/flower1.jpg -o images/flower1.webp

Эта команда преобразует images/flower1.jpg с уровнем качества 50 (0 — худшее, 100 — лучшее) и сохраняет его под именем images/flower1.webp.

После выполнения команды вы увидите в консоли примерно следующее:

Saving file 'images/flower1.webp'
File: images/flower1.jpg
Dimension: 504 x 378
Output: 29538 bytes Y-U-V-All-PSNR 34.57 36.57 36.12 35.09 dB
(1.24 bpp)
block count: intra4: 750 (97.66%)
intra16: 18 (2.34%)
skipped: 0 (0.00%)
bytes used: header: 116 (0.4%)
mode-partition: 4014 (13.6%)
Residuals bytes |segment 1|segment 2|segment 3|segment 4| total
macroblocks: | 22%| 26%| 36%| 17%| 768
quantizer: | 52 | 42 | 33 | 24 |
filter level: | 16 | 9 | 6 | 26 |

Это означает, что изображение успешно преобразовано в WebP.

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

  • Запустите в консоли следующий скрипт (не забудьте обратные кавычки):
`for file in images/*; do cwebp -q 50 "$file" -o "${file%.*}.webp"; done`

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

✔︎ Итог #

В результате у вас в каталоге images/ должно быть 6 файлов:

flower1.jpg
flower1.webp
flower2.jpg
flower2.webp
flower3.png
flower3.webp

Теперь мы можем обновить код данного Glitch, чтобы загружать WebP-изображения в браузерах, которые их поддерживают.

Добавление WebP-изображений при помощи тега <picture> #

Тег <picture> позволяет загружать WebP-изображения в новых браузерах, при этом сохраняя поддержку старых браузеров.

  • В файле index.html замените <img src="images/flower1.jpg"/> следующим HTML-кодом:
<picture>
<source type="image/webp" srcset="images/flower1.webp">
<source type="image/jpeg" srcset="images/flower1.jpg">
<img src="images/flower1.jpg">
</picture>
  • Затем замените теги <img> на <picture> для файлов flower2.jpg и flower3.png.

✔︎ Итог #

В результате теги <picture> в файле index.html должны выглядеть следующим образом:

<picture>
<source type="image/webp" srcset="images/flower1.webp">
<source type="image/jpeg" srcset="images/flower1.jpg">
<img src="images/flower1.jpg">
</picture>
<picture>
<source type="image/webp" srcset="images/flower2.webp">
<source type="image/jpeg" srcset="images/flower2.jpg">
<img src="images/flower2.jpg">
</picture>
<picture>
<source type="image/webp" srcset="images/flower3.webp">
<source type="image/png" srcset="images/flower3.png">
<img src="images/flower3.png">
</picture>

Теперь вы можете воспользоваться Lighthouse, чтобы убедиться, что WebP-изображения добавлены на сайт надлежащим образом.

Проверка использования WebP при помощи Lighthouse #

При помощи проверки производительности Serve images in next-gen formats («Выдача изображений в форматах следующего поколения») в Lighthouse вы можете узнать, все ли изображения на вашем сайте используют современные форматы, такие как WebP.

  1. To preview the site, press View App. Then press Fullscreen fullscreen. 1. Откройте DevTools, нажав Control+Shift+J (или Command+Option+J, если у вас Mac).

  2. Click the Lighthouse tab.

  3. Make sure the Performance checkbox is selected in the Categories list.

  4. Click the Generate report button.

  5. Убедитесь, что сайт успешно проходит проверку Serve images in next-gen formats.

Успешное прохождение проверки «Serve images in next-gen formats» в Lighthouse

Готово! Теперь ваш сайт использует изображения в формате WebP.

Последнее обновление: Улучшить статью
By Chrome DevRel