Давайте поговорим о нескольких распространенных форматах веб-изображений: gif, jpg, png, webp.

внешний интерфейс Ресурсы изображений Icon WebP

предисловие

На большинстве веб-страниц изображения занимают 60-70% размера страницы. Поэтому в веб-разработке для производительности и удобства веб-страниц очень важно использовать соответствующие форматы изображений для различных сценариев. Существует много типов форматов изображений.В этой статье представлен только общий обзор нескольких форматов изображений, обычно используемых в веб-приложениях: gif, png, jpg и webp.

Классификация форматов изображений

  • Нет компрессии. Формат несжатого изображения не сжимает данные изображения и может точно представить исходное изображение. Формат BMP является одним из них.
  • сжатие без потерь. Алгоритм сжатия кодирует и сжимает все данные изображения, что позволяет уменьшить размер изображения при сохранении качества изображения. png является его представителем.
  • Сжатие с потерями. Алгоритм сжатия не кодирует и не сжимает все данные картинки, а удаляет детали картинки, не распознаваемые человеческим глазом при сжатии. Следовательно, сжатие с потерями может значительно уменьшить размер изображения при том же качестве изображения. Представителем которого является jpg.

gif

Он кодируется с использованием алгоритма сжатия LZW, который представляет собой формат изображения без потерь, основанный на индексированных цветах. Из-за сжатия без потерь он меньше по размеру, чем старый формат bmp, и поддерживает прозрачность и анимацию. Недостатком является то, что, поскольку gif хранит только 8-битные индексы (то есть может отображать до 2^8=256 цветов), изображения со сложными цветами и богатыми деталями не подходят для сохранения в формате gif. Логотипы, значки и каркасы с простыми цветами подходят для формата gif.

jpg

jpg — это формат изображения с прямыми потерями, основанный на цвете. Из-за использования прямых цветов jpg может использовать до 1600 цветов (2^24), в то время как количество цветов, распознаваемых человеческим глазом, составляет всего около 1 Вт, поэтому jpg очень подходит для красочных изображений и градиентных цветов. jpg сжатие с потерями может значительно уменьшить размер изображения после удаления деталей изображения, которые не могут быть распознаны невооруженным глазом.

Но jpg не подходит для иконок и логотипов, так как не имеет преимущества в размере файла по сравнению с gif/png-8.

png-8

png-8 использует сжатие без потерь и представляет собой растровый формат, основанный на 8-битных индексированных цветах. По сравнению с gif, png-8 лучше поддерживает прозрачность, а размер меньше при том же качестве. Отлично подходит в качестве замены гифкам. Но у png-8 есть и очевидный недостаток — он не поддерживает анимацию. Это также важная причина, по которой png-8 не может полностью заменить gif. Если анимация не требуется, рекомендуется использовать png-8 вместо gif.

png-24

png-24 использует сжатие без потерь и представляет собой растровый формат, основанный на прямом цвете. Качество изображения png-24 сравнимо с качеством bmp, но у него есть преимущество в размере, которого нет у bmp. Конечно, по сравнению с jpg, gif, png-8 размер все же больше. Именно благодаря высокому качеству и сжатию без потерь он очень подходит для сохранения исходных файлов или форматов изображений, требующих вторичного редактирования.

PNG-24 может передавать богатые детали изображения, такие как jpg, но не может заменить jpg. Изображения, сохраненные как png-24, как минимум в 5 раз больше, чем jpg, но улучшение качества изображения минимально. Поэтому, если требования к качеству не очень высоки, рекомендуется использовать jpg для красочных сетевых картинок.

PNG-24 также поддерживает прозрачность, как png-8.

webp

Изображения WebP — это новый формат изображений, разработанный Google. По сравнению с png и jpg размер изображений WebP уменьшается примерно на 30% при том же визуальном восприятии. Кроме того, формат изображения WebP поддерживает сжатие с потерями, сжатие без потерь, прозрачность и анимацию. Теоретически он может полностью заменить такие форматы изображений, как png, jpg и gif.Конечно, webp еще не полностью поддерживается.

Взгляните на сравнение изображений png и изображений webp:

смотрите подробностиpng VS webp.

Еще раз взгляните на совместимость webp:

Видно, что поддержка формата webp не очень, но в целом поддержка мобильного терминала в порядке.

Суммировать

Основываясь на приведенном выше введении, мы понимаем преимущества, недостатки и применимые сценарии различных форматов изображений.Давайте сделаем абстрактное резюме с помощью диаграммы:

Формат преимущество недостаток Применимая сцена
gif Небольшой размер файла, поддержка анимации, прозрачность, отсутствие проблем с совместимостью Поддерживается только 256 цветов. Простой цветной логотип, значок, анимация
jpg Насыщенные цвета, небольшой размер файла Сжатие с потерями, качество изображения явно снижается после многократного сохранения Красочные картинки/градиентные изображения
png Сжатие без потерь, поддержка прозрачности, небольшой размер простого изображения Анимация не поддерживается, а красочные картинки большого размера логотип/значок/прозрачность
webp Небольшой размер файла, поддержка сжатия с потерями и без потерь, поддержка анимации, прозрачность Совместимость с браузером не очень хорошая Поддерживает приложение и веб-просмотр в формате webp

Наконец, руководство Google по выбору форматов изображений прилагается: