Основы форматов

Что такое PNG: формат без потерь с прозрачностью простыми словами

Логотип на сайте, иконка в приложении, скриншот в мессенджере, стикер с прозрачным фоном — почти наверняка это PNG. Формат, который не теряет ни одного пикселя при сжатии и умеет делать фон по-настоящему прозрачным. Разбираемся, как он устроен, чем отличаются PNG-8, PNG-24 и PNG-32, и когда PNG — лучший выбор, а когда нет.

Дизайнер за ноутбуком работает над яркой графикой — логотипы и иконки чаще всего сохраняют в PNG
Логотипы, иконки и графика с прозрачностью — родная стихия PNG. Фото: Pexels

Что такое PNG простыми словами

PNG (Portable Network Graphics) — это растровый формат изображений, то есть картинка из пикселей, как фотография. Но в отличие от привычного JPG, у PNG две суперспособности: он сжимается без потери качества и умеет хранить прозрачность. Именно поэтому в PNG живут логотипы, иконки, скриншоты, кнопки интерфейса и любые картинки, где важны чёткие края и текст.

Главное отличие от JPG проще всего понять на примере. Сохраните логотип в JPG — и на резких границах букв появятся еле заметные «грязные» разводы, а прозрачный фон станет белым. Сохраните тот же логотип в PNG — края останутся идеально острыми, а фон можно сделать невидимым. PNG бережёт каждый пиксель ровно таким, каким он был.

Коротко

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

Откуда взялся PNG: формат, рождённый из патентного скандала

У PNG неожиданно драматичная биография. В конце 1994 года компания Unisys внезапно объявила, что алгоритм сжатия LZW, на котором держался популярнейший формат GIF, защищён её патентом — и за его использование теперь нужно платить отчисления. Для целого поколения веб-разработчиков это прозвучало как гром среди ясного неба.

Реакция была мгновенной. Уже 4 января 1995 года программист Томас Боутелл (Thomas Boutell) запустил в Usenet-конференции comp.graphics обсуждение свободной замены GIF. Сложилась неформальная интернет-группа энтузиастов, и работа закипела. Вместо патентованного LZW взяли открытый алгоритм DEFLATE — и сразу получили выигрыш: тесты показали, что замена LZW на DEFLATE сжимает примерно на 10% лучше.

В октябре 1996 года вышла версия 1.0 спецификации, которая в тот же момент стала рекомендацией консорциума W3C. Так появился полностью свободный формат, который не только заменил GIF, но и обошёл его: добавил полноцветный режим (24 бита вместо жалких 256 цветов GIF) и настоящую плавную прозрачность.

PNG — редкий пример формата, который родился не в корпорации, а в открытой переписке энтузиастов, разозлённых патентом. И обошёл оригинал по всем статьям.
Постеры графического дизайна с плоскими яркими цветами и фигурами — такая графика идеально сжимается в PNG
Плоские заливки, чёткие фигуры и крупные участки одного цвета — то, на чём PNG сжимает особенно эффективно. Фото: Pexels

Сжатие без потерь: в чём вся магия

«Сжатие без потерь» звучит как маркетинг, но смысл буквальный: после распаковки PNG вы получаете ровно те же пиксели, что были на входе — до единого бита. Можно открыть, отредактировать и пересохранить картинку сто раз подряд, и она не «осыплется», как это происходит с JPG. Как PNG этого добивается? В два шага.

Шаг 1 — фильтрация. Перед сжатием PNG не хранит сами цвета пикселей, а предсказывает каждый пиксель по соседним (слева и сверху) и записывает только разницу. На картинке с плавным переходом или ровной заливкой соседние пиксели почти одинаковы, поэтому разница получается близкой к нулю — а вереницы нулей сжимаются великолепно. В арсенале PNG пять методов предсказания: None, Sub, Up, Average и хитрый Paeth, и для каждой строки выбирается лучший.

Шаг 2 — сжатие DEFLATE. Подготовленные данные ужимаются алгоритмом DEFLATE — тем самым, что работает внутри ZIP-архивов. Благодаря фильтрации он находит куда больше повторов, чем нашёл бы в сырых пикселях. Результат: при том же содержимом PNG обычно на 10–50% меньше GIF, особенно на скриншотах, логотипах и простой графике.

Почему фото в PNG весит много

Та же логика, что делает PNG чемпионом на графике, бьёт по фотографиям. На фото соседние пиксели почти всегда чуть-чуть разные (шум, текстура, плавные переходы), предсказание работает плохо, и сжимать почти нечего. Поэтому фотография в PNG может весить в 5–10 раз больше, чем в JPG, без видимой выгоды.

Прозрачность и альфа-канал

Вторая суперсила PNG — настоящая прозрачность. У GIF она была примитивной: пиксель мог быть либо полностью видимым, либо полностью невидимым — никаких полутонов. Из-за этого края прозрачных картинок выглядели «лесенкой».

PNG решает это альфа-каналом. К привычным трём каналам цвета (красный, зелёный, синий) добавляется четвёртый — альфа, который для каждого пикселя хранит степень прозрачности: значение от 0 (пиксель полностью прозрачен) до 255 (полностью непрозрачен). А раз есть все промежуточные значения — получаются мягкие тени, свечения, размытые края и полупрозрачные градиенты, которые красиво ложатся на любой фон.

Веер цветовых образцов в руках — PNG хранит точный цвет каждого пикселя плюс его прозрачность
Каждый пиксель PNG-32 — это четыре числа: красный, зелёный, синий и альфа (прозрачность). Фото: Pexels

PNG-8, PNG-24 и PNG-32: в чём разница

«PNG» — это не один формат, а семейство. Цифра в названии — это количество бит на пиксель, и от неё зависят и палитра цветов, и поддержка прозрачности, и вес файла.

ТипЦветаПрозрачностьКогда использовать
PNG-8Палитра до 256Вкл/выкл по пикселюПростые иконки, мелкая графика — минимальный вес
PNG-2416,7 млн (truecolor)НетПолноцветная графика без прозрачного фона
PNG-3216,7 млн + альфаПлавная, по пикселюЛоготипы и картинки с мягкой прозрачностью

PNG-8 хранит не сами цвета, а индексы в палитре максимум из 256 оттенков — как «по номерам». Это делает его очень лёгким, но для фото и сложных градиентов палитры не хватит. PNG-24 — это полноцветный режим: 8 бит на каждый из трёх каналов, всего 16,7 миллиона цветов, но без альфа-канала. PNG-32 — тот же truecolor плюс 8-битная альфа, то есть полная плавная прозрачность. Именно его подразумевают, когда говорят «PNG с прозрачным фоном».

Не путайте «без потерь» с «лёгкий»

PNG не теряет качества, но это не значит, что он маленький. PNG-32 с большим изображением может весить очень много из-за альфа-канала. Если прозрачность не нужна, выбирайте PNG-24 или PNG-8 — файл выйдет заметно легче. А для веба прозрачную графику часто переводят в WebP: он тоже умеет альфа-канал, но весит меньше.

Как устроен файл PNG внутри

Загляните в PNG-файл «под капот» — и увидите аккуратную, почти инженерную конструкцию. Любой PNG начинается с 8-байтной сигнатуры (137 80 78 71 13 10 26 10). Это «отпечаток пальца» формата: по нему программа мгновенно понимает, что перед ней именно PNG, а не что-то другое.

Дальше идёт цепочка блоков, которые называются чанками (chunks). Каждый чанк — это маленький самодостаточный пакет из четырёх частей: длина данных, четырёхбуквенный тип (например, IHDR), сами данные и контрольная сумма CRC для проверки целостности. Три чанка обязательны для любого PNG:

  • IHDR — всегда первый. Это «паспорт» картинки: ширина, высота, глубина цвета, тип (палитра / truecolor / оттенки серого), наличие альфа-канала.
  • IDAT — здесь лежат сами сжатые пиксели. Таких чанков может быть несколько подряд.
  • IEND — самый простой чанк: пустой, он лишь говорит «файл закончился».

Между ними могут стоять необязательные (ancillary) чанки: tRNS для прозрачности палитры, gAMA для гаммы, tEXt для текстовых заметок и другие. Удобство в том, что программа, не знающая какой-то чанк, просто его пропустит — формат расширяемый по своей природе.

Полное имя
Portable Network Graphics
Расширение
.png
Сжатие
Без потерь (DEFLATE)
Прозрачность
Да (альфа-канал)
Глубина цвета
До 16 бит на канал
Анимация
Нет (есть расширение APNG)
1996год выхода версии 1.0
256уровней прозрачности (альфа)
0%потерь качества при сжатии

Когда выбирать PNG, а когда нет

PNG — не «лучший формат вообще», а специалист в своей области. Простое правило: если в картинке есть резкие края, текст или нужна прозрачность — берите PNG. Если это обычная фотография — почти всегда выгоднее JPG.

Логотипы и иконки

Чёткие линии и плоские цвета остаются острыми, фон — прозрачным.

Скриншоты и текст

Без артефактов вокруг букв — текст читается идеально.

Фотографии

Файл выйдет в разы больше при том же виде — лучше JPG или WebP.

Нужно сжать PNG для сайта?

Если фотография случайно сохранилась в PNG и весит слишком много — переведите её в JPG бесплатным конвертером FormatZ. Прямо в браузере, без установки и регистрации.

Конвертировать PNG в JPG

Как открыть и конвертировать PNG

С открытием PNG проблем не бывает: его понимает любой браузер, штатные просмотрщики Windows и macOS, все графические редакторы — от Photoshop и GIMP до бесплатного Paint.NET. Двойной клик — и картинка на экране.

А вот конвертация нужна часто — обычно чтобы уменьшить вес. Если PNG оказался фотографией, переведите его в JPG: размер упадёт в разы. Нужен компромисс «лёгкий, но с прозрачностью» — выбирайте WebP. Получили картинку в другом формате и хотите вернуть прозрачность или чёткость — пригодится обратное преобразование JPG → PNG или WebP → PNG. Полный список доступных конвертаций есть на странице всех форматов.

Важно про обратную конвертацию

Помните: если фото уже было JPG, то перевод его в PNG не вернёт потерянное качество — он лишь «заморозит» картинку без потерь дальше. PNG бережёт то, что есть, но не восстанавливает то, что JPG уже выбросил.

PNG сжимает без потерь и поддерживает прозрачность, поэтому он идеален для логотипов, иконок, скриншотов и графики с резкими краями и текстом — они остаются чёткими. JPG лучше для фотографий: там он даёт файл в разы меньше при почти незаметной потере качества. Проще говоря: рисованное и с прозрачностью — PNG, фото без прозрачности — JPG.
Без потерь. PNG использует фильтрацию строк и алгоритм DEFLATE (тот же, что в ZIP): после распаковки вы получаете ровно те же пиксели, что были на входе, до последнего бита. Сохранять PNG можно сколько угодно раз — качество не деградирует.
PNG-8 хранит палитру до 256 цветов — он самый лёгкий и подходит для простых иконок. PNG-24 — это полноцветное изображение (16,7 млн цветов), но без альфа-канала. PNG-32 — то же полноцветное изображение плюс 8-битный альфа-канал, то есть плавная попиксельная прозрачность. Для прозрачных PNG почти всегда используют именно PNG-32.
В PNG к цвету каждого пикселя добавляется альфа-канал — отдельное значение прозрачности от 0 (полностью прозрачно) до 255 (полностью непрозрачно). Это даёт мягкие тени, свечения и сглаженные края. У JPG такого канала в структуре нет вообще, поэтому прозрачность ему недоступна.
PNG открывается где угодно: в любом браузере, штатном просмотрщике Windows и macOS, в Photoshop, GIMP, Paint.NET. Чтобы уменьшить вес для веба, PNG обычно конвертируют в JPG (для фото) или в WebP (универсально) — например, в онлайн-конвертере FormatZ, прямо в браузере и без установки.