в каком формате сохранять картинки для сайта

Форматы изображений для веба

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

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

Растровые форматы

Для начала рассмотрим форматы, которые относятся к растровой графике: GIF, JPEG, PNG и WebP. Подробнее о растровой графике можно прочитать в статье «Растровая и векторная графика».

Основные характеристики, которые нас будут интересовать при выборе формата — это качество изображения, вес и количество цветов. В вебе тяжёлые изображения непрактичны, поскольку они долго загружаются. Чтобы уменьшить вес файла, используются алгоритмы сжатия. Сжатие может быть с потерями и без потерь. При выборе подходящего формата изображения, нам нужно найти баланс между весом файла и качеством картинки, так как некоторые алгоритмы сжимают изображения с потерей качества. Теперь рассмотрим каждый из форматов подробнее.

GIF (Graphics Interchange Format)

Формат был разработан компанией CompuServe в далёком 1987 для передачи растровых изображений по интернету. GIF имеет цветовую палитру, состоящую из 256 цветов. Алгоритм GIF выбирает 256 наиболее используемых в исходном изображении цветов, а все остальные оттенки создаются путём подмешивания — подбора соседних пикселей таким образом, чтобы человеческий глаз воспринимал их как нужный цвет. По этой причине GIF не подходит для хранения полноцветных изображений и фотографий.

Формат поддерживает прозрачность — каждый пиксель изображения может быть в двух состояниях: прозрачный или непрозрачный, полупрозрачность не поддерживается.

Особенностью GIF является поддержка анимации, то есть этот формат может хранить несколько кадров, которые сменяют друг друга с определённой частотой.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтаПример изображения в формате GIF (источник изображения: giphy.com)

Таким образом, формат GIF подходит если:

JPEG (Joint Photographic Experts Group)

Формат JPEG получил своё название от объединённого комитета экспертов по фотографии, который и создал этот стандарт в конце 80-х — начале 90-х годов. Он был разработан для сжатия и хранения полноцветных фотографий. Поддерживает более 16 миллионов цветов.

Формат JPEG сжимает изображения с потерей качества. Алгоритм сжатия основан на разбиении исходного изображения на квадраты 8×8 пикселей, и последующей их группировке. Можно получать JPEG изображения очень маленького веса, но только за счёт ухудшения качества картинки, можно получить и очень качественные JPEG, но тогда картинка будет слишком тяжёлой. Поэтому главная задача при работе с JPEG — подобрать такой уровень качества, чтобы вес был небольшой и качество картинки было приемлемым (обычно, это диапазон от 60 до 70, но нужно тестировать на каждой картинке).

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтаПример изображения в формате JPEG с неоптимальной степенью сжатия. Качество: 10. Вес: 20 килобайт.

Первая картинка весит 20 килобайт. Это круто, очень мало, но для этого мы задали уровень качества 10 и картинка выглядит плохо.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтаПример изображения в формате JPEG с оптимальной степенью сжатия. Качество: 60. Вес: 65 килобайт.

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

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтаПример изображения в формате JPEG с минимальной степенью сжатия. Качество: 95. Вес: 169 килобайт.

Для третьей картинки мы задали уровень качества 95, из-за чего её вес стал 169 килобайт. Вторая и третья картинка внешне почти неразличимы, однако вторая картинка весит на 104 килобайта легче.

Таким образом, формат JPEG лучше подходит для:

PNG (Portable Network Graphics)

PNG является относительно недавним форматом, который был введён как альтернатива для GIF-файлов.

PNG является форматом сжатия без потерь и позволяет сохранять изображения, в которых требуется особенная чёткость. Например, чертежи и печатный текст.

Формат имеет две вариации: PNG8 и PNG24. PNG8 может хранить лишь 256 цветов, а PNG24 использует уже более 16 миллионов цветов.

Главная особенность формата PNG — поддержка альфа-прозрачности, то есть каждому пикселю в отдельности можно задать свою степень прозрачности.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтаПример изображения в формате PNG (источник изображения: Wikimedia Commons)

Итак, формат PNG подходит для:

WebP — новый формат, созданный и развиваемый с 2010 года компанией Google.

Главная цель этого проекта — ещё больше уменьшить вес при сохранении такого же качества.

Формат использует новый алгоритм сжатия, в котором искажения отличаются от искажений других форматов. Ухудшается детализация и структура, в то время как края остаются чёткими.

Иногда WebP сжимает изображение даже лучше, чем заявляет Google.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтаJPEG: 44 килобайт WebP: 26 килобайт. Если изображение не видно, значит ваш браузер не поддерживает формат WebP.

Ввиду относительной новизны формата, не все браузеры умеют с ним работать. На сегодняшний день WebP поддерживается только Chrome, Opera и Firefox.

Векторные форматы

GIF, JPEG, PNG, и WebP — растровые форматы, основанные на дискретном (пиксельном, точечном) представлении изображения, в то время как векторные форматы основаны на математических формулах (геометрическом представлении фигур). Подробнее о векторной графике можно прочитать в статье «Растровая и векторная графика».

SVG (Scalable Vector Graphics)

SVG переводится как — масштабируемая векторная графика. Формат существует с 1999 года.

Размер объектов SVG намного меньше размера растровых изображений, а сами изображения не теряют в качестве при масштабировании. В отличие от растровых форматов мы можем взаимодействовать с изображениями в формате SVG — при помощи CSS можно изменять параметры графики: цвет, прозрачность или границы, а при помощи JavaScript — анимировать изображение.

SVG поддерживается почти всеми браузерами за исключением Internet Explorer 8 и ниже, но и это можно решить подключением JavaScript-библиотек, например, SVGeezy.

Формат SVG отлично подходит для малоцветных схем, логотипов и иконок.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтав каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтав каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтаПримеры SVG (источники изображений: Roundicons Freebies www.flaticon.com/authors/roundicons-freebies и HTML Academy)

Источник

Загрузка и хранение фотографий в Web приложениях

Почему это важно?

На современных web сайтах объем картинок может составлять от 30% до 70% всего размера страницы. Например, объем изображений на Хабре обычно составляет несколько мегабайт.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Большинство изображений в Web’e — это фотографии. Профильные фото в соц. сетях, альбом с телефона, профессиональные снимки и т.п. Правильная стратегия и инструменты для работы с фотографиями позволят сделать сайт быстрым для посетителей.

Формат для фотографий

Основной формат для хранения фотографий в Web’e — это JPEG. Однако иногда следует использовать и другие форматы.

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

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Подбор показателя сжатия может уменьшить размер исходного файла в несколько раз без заметного ухудшения качества. Логика такая: чем ниже качество — тем легче файл. Обычно используют показатель качества от 80 до 90.

Это формат, разработанный специально для обслуживания изображений в Web’e. Может уменьшить размер файла в несколько раз без потери качества. Значительно лучше сжимает фотки, чем JPEG. Однако поддерживается еще не всеми браузерами.

PNG и GIF

Эти форматы не подходят для фотографий. PNG изображения сохраняются без потери качества и лучше всего подойдут для иконок и графики. Формат GIF имеет ограниченную палитру, однако поддерживает анимацию.

Загрузка фотографий на сервер

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

Если вы собираетесь работать с сотнями файлов, стоит выбрать древовидную структуру:

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Это позволит избежать ситуации с тысячами файлов в одной папке (это тормозит работу файловой системы и вашу собственную). Лучше всего использовать вложенную структуру из папок длинной в два символа:

Инструменты

После загрузки фотографий на сервер, их следует обработать:

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Для этого существует ряд инструментов.

ImageMagick

Сразу после загрузки фотографии на сервер, имеет смысл удалить все метаданные и изменить размер до 1000х1000:

GraphicsMagick

То же самое с помощью более производительного GraphicsMagick:

Jpegtran

Этот инструмент уменьшает размер JPEG файлов без потери качества.

cwebp

Утилита позволяет преобразовать изображение в формат Webp.

Отдача клиенту

Фотографии лучше всего отдавать Nginx’ом. Обязательно нужно настроить Cache-control и Keepalive для повышения скорости загрузки страниц:

Превью (thumbnails)

Часто нужно иметь возможность показывать небольшие версии фотографий (например, миниатюра профильной фотки).
в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Для этого необходимо генерировать нужные размеры при загрузке:

Тогда у каждого изображения будет соответствующая миниатюра.

Более удобный подход — генерировать превью на лету с помощью, например, Nginx image_filter модуля.

Поддержка Webp

Webp не поддерживается всеми браузерами, однако постепенно набирает популярность. Для того, чтобы извлечь пользу из этого формата, можно отдавать разные версии фотографий в зависимости от браузера посетителя.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Для каждой фотографии нужно сгенерировать webp версию:

Теперь необходимо отдать соответствующую версию картинки в зависимости от поддержки этого формата браузером:

Облака

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

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Amazon s3

Это облачное хранилище с которым не придется думать о масштабировании. Храните терабайты и не парьтесь. Пример реализации загрузки фотографий на S3 в PHP:

После этого можно показывать фотку прямо с Амазона:

Cloudinary

Мощный сервис для работы с фотографиями в облаке. Ресайз, кроп, распознавание лиц, разные форматы, онлайн редактор и другие функции.

i.onthe.io

Мега простой сервис, распознает возможности браузера и подбирает оптимальный формат отдачи. Поддерживает URL API для ресайза и кропа.

Источник

Использование современных графических форматов в веб-проектах

Эдди Османи, в статье «Цена JavaScript в 2018 году», озвучил одну ценную мысль: время, необходимое на обработку скрипта размером 200 Кб, и на обработку изображения, имеющего такой же размер, серьёзно различается. Дело в том, что при обработке кода браузеру нужно проделать более масштабную работу, чем при подготовке к использованию изображений. Вот что об этом говорится в статье:

JPEG-изображение нужно декодировать, растеризовать и вывести на экран. А JS-бандл надо, если рассматривать это упрощённо, загрузить, распарсить, скомпилировать, выполнить. На самом же деле движку приходится решать и другие задачи в процессе обработки JS-кода. В целом, стоит учитывать, что на обработку JavaScript-кода, размеры которого, в байтах, сопоставимы с размерами других материалов, тратится гораздо больше системных ресурсов.

Эти слова были написаны в 2018 году, но они до сих пор более чем справедливы. Правда, учитывая текущую обстановку, высказанная здесь мысль сегодня воспринимается немного иначе.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Принимая во внимание то, что в мире сейчас разразилась пандемия, я заметил, что моё интернет-соединение стало работать нестабильно. К нашему счастью, благодаря тому, что на страже благополучия интернета стоят прекрасные специалисты, не знающие усталости, большая часть Всемирной сети до сих пор работает нормально. Но в интернете, определённо, что-то происходит. Я пользуюсь соединением на 100 Мбит/с, но у меня возникает такое ощущение, будто я сижу на 3G-модеме.

Это вносит некоторые изменения в вышеприведённые рассуждения. Дело в том, что наши устройства могут парсить и компилировать JavaScript с той же скоростью, с которой они могли это делать пару недель назад. Но данные теперь путешествуют по сетям медленнее. В результате в настоящий момент крайне важно то, какой именно объём данных, представляющих некий ресурс, передаётся по сети при загрузке этого ресурса.

А на сайтах обычно имеется гораздо больше, чем 200 Кб изображений. Страница с несколькими мегабайтами картинок — это обычно дело. Многие разработчики (и я тоже!), как правило, совсем не задумываются о размерах медиа-материалов.

Но, что очень хорошо, оптимизировать изображения, используемые на веб-страницах, не так уж и сложно. В этом материале мы поговорим о том, как пользоваться современными графическими форматами вроде WebP. Изображения, сохранённые в таких форматах, часто оказываются в 2-3 раза меньше, чем те, для хранения которых используются всем известные и всеми любимые старые форматы (вроде JPG и PNG). Применение новых форматов может серьёзно изменить ситуацию в лучшую сторону.

Общий обзор современных графических форматов

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

Много ли можно выиграть, пользуясь альтернативными графическими форматами?

Несколько месяцев назад я использовал в одном материале следующее изображение.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Изображение, использованное в одном материале

Я провёл некоторые эксперименты, рассмотрев использование форматов JPG и PNG для хранения исходного изображения. Я оптимизировал варианты изображения с использованием imagemin для того чтобы узнать о том, что мне может дать применение WebP вместо этих «ретро»-форматов.

Результаты оказались прямо-таки невероятными.

Я проводил подобные эксперименты с множеством изображений. Практически всегда оказывалось, что WebP-файлы были на 30-70% меньше чем даже оптимизированные версии графических файлов других форматов.

Тут может возникнуть вопрос о том, как преобразование в WebP может повлиять на SVG-изображения. Я подобных экспериментов с SVG не проводил. SVG — это векторный формат. Это значит, что изображения в нём строятся на основе математических инструкций, а не на основе сведений о цвете отдельных пикселей. Преобразовать SVG-изображение в WebP — значит отказаться от возможностей по масштабированию SVG-изображений, что, полагаю, недопустимо. К тому же, я подозреваю, что подобное преобразование, в большинстве случаев, приведёт к увеличению размеров файлов.

Браузерная совместимость

Для того чтобы узнать о том, как те или иные графические форматы поддерживаются браузерами, заглянем на caniuse.com.

Формат WebP пользуется поддержкой большинства браузеров.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Поддержка формата WebP браузерами

Хоть уровень поддержки этого формата и весьма высок, очень плохо то, что его не поддерживают Safari и Internet Explorer.

А вот — сведения о поддержке JPEG 2000.

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Поддержка формата JPEG 2000 браузерами

Так, теперь Safari на нашей стороне, а вот Internet Explorer опять остался не у дел.

А как насчёт JPEG XR?

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

Поддержка формата JPEG XR браузерами

А тут отличился именно Internet Explorer. В результате, пользуясь этими тремя форматами, мы перекрываем все существующие браузеры (KaiOS Browser не поддерживает ни один из этих форматов, и я приношу ему свои извинения за то, что обхожу его вниманием, но я даже не знаю о том, что это за браузер).

Поговорим теперь о том, как выбирать разные форматы изображений, предназначенные для разных браузеров.

Элемент picture спешит на помощь

Вот как выглядит HTML-код, в котором применяется элемент picture :

В Chrome, например, после обработки вышеприведённой разметки, браузер придёт к чему-то, более или менее эквивалентному следующему коду:

Использование набора следующих друг за другом элементов source означает, что в каждом браузере подходящим окажется хотя бы один из них. Так, большинство браузеров используют webp-изображение, Safari загрузит jp2-изображение, IE — jxr-изображение.

Упрощённая альтернатива

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

Если создавать такие изображения самостоятельно — придётся вложить в это много ручного труда. Если же генерировать их автоматически — это может значительно увеличить время сборки проекта. Обработка графики, как известно, становится весьма медленным процессом в том случае, если речь идёт о множестве изображений.

Лишь очень немногие посетители моего блога пользуются Internet Explorer (за последние 7 дней его попытались посмотреть лишь 3 человека с IE, что составило 0.02% трафика). Поэтому я решил воспользоваться упрощённым вариантом вышеописанного решения:

Я отдаю компактное webp-изображение тем браузерам, которые поддерживают этот формат (Chrome, Firefox, Edge), а браузерам, которые этого формат не поддерживают (IE, Safari), предлагаю наследие прошлого — jpeg-картинку.

С моей точки зрения это — пример прогрессивного улучшения. Проект остаётся работоспособным на старых браузерах, хотя загрузка изображений и занимает больше времени. Это — компромисс, который меня устраивает. (Правда, я надеюсь, что поддержка WebP скоро появится и в браузерах от Apple).

Проверка работоспособности решения

Преобразование графических файлов в формат WebP

Компания Google создала набор инструментов, направленный на работу с webp-файлами. Один из таких инструментов называется cwebp. Он позволяет преобразовывать в WebP графические файлы других форматов.

Если вы пользуетесь MacOS, установить этот набор инструментов можно с помощью Homebrew:

На других платформах, полагаю, нужно будет загрузить подходящий libwebp-пакет из репозитория.

После установки инструментов пользоваться ими можно так:

Рассмотрим эту команду:

Использование современных графических форматов в React-приложениях

. Я пользуюсь для этого React-компонентами. На мой взгляд, это очень удобно. Вот как это выглядит:

Использование компонента ImgWithFallback очень похоже на работу с обычным тегом img :

Применение современных графических форматов со стилизованными компонентами

Использование пакета gatsby-image

Если этот пакет вам интересен — взгляните на его документацию.

Минусы WebP

Единственным реальным недостатком webp, который мне удалось обнаружить, заключается в том, что с файлами этого формата очень неудобно работать.

Большинство настольных пакетов для работы с изображениями пока его не поддерживают. Например, я не могу открывать webp-файлы в Preview на MacOS. Это значит, скажем, что если я сохраню webp-изображение с веб-страницы, я не смогу просмотреть его на компьютере!

Преобразование webp-файлов в jpeg-файлы — процесс достаточно простой. В интернете можно найти много бесплатных сервисов, выполняющих подобное преобразование. Но, это, опять же, не так удобно, как работа с традиционными графическими форматами. Если ваш сайт предлагает пользователям загружать с него графические файлы — вы, возможно, решите, что переход на webp вам не нужен.

Итоги

Мне очень нравится то, что благодаря использованию webp удалось сократить размер изображений в моём блоге примерно на 50%. Помимо того, что в наше непростое время это улучшает впечатления пользователей от работы с ним, я ещё надеюсь на то, что это позволит мне немного сэкономить на оплате трафика.

Конечно, идея ручного преобразования графических файлов в формат webp выглядит весьма непрактичной. Я уже занимаюсь изучением вопроса о том, как автоматически конвертировать в этот формат jpg- и png-файлы. В идеале этот процесс должен происходить совершенно незаметно для разработчика, во время сборки сайта.

Создатели веб-проектов обычно не особенно интересуются особенностями применения новых графических форматов. Но я полагаю, что разбираться в этом вопросе весьма полезно. Ведь использование WebP — это, вероятно, самый простой способ сократить размеры веб-проекта на сотни килобайт.

Уважаемые читатели! Пользуетесь ли вы форматом WebP?

Источник

Как выбрать подходящий для web формат изображения

В этой статье речь пойдет о форматах JPEG, GIF и PNG, а также о двух других, более современных форматах. Большинство веб-разработчиков учатся использовать тот или иной формат путем проб и ошибок, зарабатывая при этом ценный опыт. Однако практически никто не понимает, как именно работает каждый из этих форматов.

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

Этот формат прошел проверку временем, так как появился в далеком 1992 году. Сжатие этого формата происходит следующим образом. Сначала изображение из цветового пространства RGB (от английских “red” – «красный», “green” – «зеленый» и “blue” – «синий») преобразуется в пространство YUV, которое основано на характеристиках яркости и цветности; это пространство наиболее близко к тому, как воспринимает цвета человек. Затем изображение разделяется на пиксельные блоки размером 8х8, и каждый блок раскладывается на составляющие цвета, частота которых затем подсчитывается. Если говорить с точки зрения математики, то получается, что подобное сжатие переносит изображение из пространственной области в частотную область.

В некотором смысле такое сжатие позволяет отказаться от части информации о яркости и цветах. То, какая часть информации будет убрана, напрямую зависит от качества изображения, которое вы хотите получить в итоге.

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

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

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайта

На заре зарождения интернета, если изображение не было формата JPEG, значит, оно было формата GIF. GIF использует для сжатия алгоритм LZW (Lempel-Ziv-Welch – алгоритм Лемпеля — Зива — Велча), который намного проще, чем технология сжатия JPEG. По сути, этот алгоритм сканирует данные изображения и создает короткий код для тех участков, которые повторяются. Поэтому GIF подходит для сжатия изображений, которые состоят из идентичных или повторяющихся частей. Это изображения с четкими формами, которые имеют всего несколько цветов с резкими границами между ними. Именно такие изображения удастся сжать при помощи GIF наиболее эффективно и без потерь.

Несмотря на то, что GIF достаточно простой формат, у него есть пара интересных характеристик – это прозрачность и анимация.

А вот для сжатия изображений с некоторым разнообразием оттенков GIF не подходит: этот формат поддерживает только 8-битный цвет, то есть максимум 256 цветов на одном изображении. Поэтому если вы решите сжать при помощи GIF изображение с широкой цветовой палитрой, то в итоге можете получить постеризованную картинку со значительным падением глубины цветности, которая будет выглядеть ужасно.

Пример изображений в формате GIF:

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтаОбобщая, можно отметить, что JPEG и GIF имеют свои сильные и слабые стороны. Во время зарождения интернета это были основные используемые форматы. Однако позже некоторые энтузиасты решили попробовать создать новый формат для сжатия изображений без потерь.

Разработка PNG началась в 1995 году, и уже через год его можно было использовать в качестве полноправного сетевого формата.

Так как PNG задумывался в качестве замены формата GIF, он значительно превосходит предшественника по своим возможностям. Например, PNG обладает следующими преимуществами:

Увидеть, как хорошо PNG сжимает разноцветное полупрозрачное изображение, можно ниже:

в каком формате сохранять картинки для сайта. Смотреть фото в каком формате сохранять картинки для сайта. Смотреть картинку в каком формате сохранять картинки для сайта. Картинка про в каком формате сохранять картинки для сайта. Фото в каком формате сохранять картинки для сайтаТак почему PNG лучше сжимает изображения, чем GIF? Это происходит благодаря новым алгоритмам сжатия.

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

Таким образом, формат PNG, к примеру, позволяет эффективно сжать и вертикальные одноцветные области (в то время как GIF сжимает только горизонтальные области).

Однако, возвращаясь к началу статьи, нужно отметить, что в случае с фотографиями PNG поведет себя лучше, чем GIF, но все же хуже, чем JPEG.

Форматы следующего поколения

JPEG, GIF и PNG – это распространенные и универсальные форматы, которые веб-разработчики могут использовать повсеместно. Однако появляются и новые форматы изображений, которые также обладают интересными особенностями.

Этот формат появился в 2010 году, его созданием занималась корпорация Google. WebP использует архитектуру формата мультимедиа WebM.

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

Так как этот формат принадлежит Google, то в данный момент он поддерживается только браузерами Chrome и Opera.

JPEG-XR

JPEG-XR был разработан компанией Microsoft. Как и все подобные форматы нового времени, JPEG-XR имеет значительные преимущества сжатия перед традиционным форматом JPEG:

Как и в случае с WebP, JPEG-XR это более сложный, эффективный и менее поддерживаемый формат, чем его предшественники. В данный момент JPEG-XR поддерживается только браузерами Internet Explorer и Edge.

Использование форматов будущего сегодня

Несмотря на то, что новые форматы поддерживаются еще не всеми браузерами, вы можете использовать их на своем сайте уже сейчас.

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

Другой способ выводить разные изображения для разных посетителей – сделать так, чтобы за вывод информации отвечала не клиентская, а серверная часть. В этом случае разным пользователям будут показываться разные картинки по одному и тому же адресу.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *