Разное

Формат png это что: Чем открыть формат PNG? Программы для чтения PNG файлов

Содержание

О формате PNG. Краткий тест-драйв / Хабр

  1. Что такое PNG?
  2. PNG vs GIF.
  3. PNG vs JPEG.
  4. Жизнь после Photoshop’а или сжимаем дальше.
  5. Adobe Fireworks или PNG-8 с альфа-каналом.
  6. Вердикт.

Осторожно, много картинок! Все кликабельны.

PNG

Растровый графический формат

PNG

, набирающий всё большую популярность в эпоху веб 2.0, появился в далеком 1995 году как замена старому доброму GIF (и, частично, TIFF). К тому времени хозяева запатентованного GIF’а решили сбивать четырёхзначные суммы со всех разработчиков, использующих формат, и свободному сообществу ничего не осталось кроме как предложить бесплатную альтернативу.

Так в чем же преимущества формата?

  • Полноценная поддержка alpha-transparency – прозрачности. Позволяет сделать участки изображения прозрачными и полупрозрачными.
  • Качественный алгоритм сжатия без потери качества. Похожий на LZW, но немного эффективнее.
  • Возможность черезстрочной развёртки, причем (в отличии от GIF) как по вертикали, так и по горизонтали одновременно.
  • Встроенная гамма-коррекция. Позволяет прикрепить к изображению настройки его отображения, для того чтобы на разных мониторах изображение отображалось точно так же, как и у автора.

Существуют 2 версии формата: PNG-8 (похож на GIF – использует индексные цвета) и PNG-24 (ближе к JPEG – полноцветная палитра).

PNG vs GIF

Так как PNG-24 использует полную палитру цветов, сравнивать его с GIF довольно сложно. PNG-8 с его индексной палитрой здесь более схож. Приведу скриншоты для сравнения:


Практика (как и мнение коллег) показывает, что простые небольшие изображения GIF сжимает лучше. Но, когда речь заходит о больших изображениях, GIF всё же остаётся позади.

Кроме того, ещё одно немаленькое преимущество: на самом деле, вопреки распространённому мнению, PNG-8 тоже может использовать полноценный альфа-канал, как и PNG-24. Просто Photoshop его не поддерживает, поэтому Сергей Чикуенок из студии Лебедева рекомендует использовать Adobe Fireworks, чем я и решил заняться (Об этом немного позже).

PNG vs JPEG

А в этой битве, если прозрачность нам не нужна, PNG проигрывает, так сказать, на «среднем сегменте рынка». Хотя, если прилинковать к JPEG’у ICC-профайл, разница в объёме становится незаметной. Мои замеры приводились на – JPEG 100%. А при меньшем качестве (с не особо заметной для глаза разницей) сравнение, к сожалению, становится ещё более печальным.

В общем, смотрите сами:

UPD А вообще, результаты значительно зависят от самого изображения: PNG лучше сжимает градиенты и однотонные участки, но для фотографий лучшее сжатие даёт JPEG. Хотя, говорят (самому с трудом верится), на больших фотографиях PNG и тут лидирует – проверено только что в процессе конвертирования скриншотов к статье (PNG против JPEG-70% – выигрыш раза в полтора).

Жизнь после Photoshop’а или сжимаем дальше

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

UPD

Кроме того, с учётом специфики формата, для элементов дизайна в вебе – это, наверное, лучшее решение.

Гуглим и качаем – PNGOut. Программка около 1.5 Мб с минимальным количеством настроек позволяет прогонять (в том числе пакетно) PNG-файлы со сжатием.

На пакете иконок (90 файлов с прозрачным фоном без особых наворотов) выигрыш в объёме составил в среднем около 10-15%. Не особо, конечно, впечатляет. Но для рассмотренных выше файлов-примеров процент сжатия колебался от 10% (большой постер без прозрачности) до 72% (полупрозрачные прямоугольники). Так что, попробовать стоит, тем более работа с утилитой много времени не занимает.

Кроме PNGOut, существует ещё много программ, детальным обзором которых сейчас заниматься не хочется:

  • OptiPNG – не имеет графической оболочки и работает из командной строки. По непроверенным данным процент сжатия меньше.
    UPD
    но её пользователи утверждают обратное.
  • Pngcrush – сам не пробовал, говорят «пытается оптимизировать файл всеми доступными способами», но главное ведь не «как пытается», а «как оптимизирует».
  • и ещё ряд утилиток просто вычищающих служебный мусор из файлов.
Adobe Fireworks

Честно говоря, Adobe Fireworks стал для меня настоящим открытием: PNG-8, PNG-24 и PNG-32 + куча настроек!

3 версии формата в AF:

PNG-24 и PNG-32 я подробно не рассматривал. Насколько я понял, в их терминологии 32 – с альфа-каналом, а 24 – без. По предварительным прикидкам Photoshop справляется с этй задачей лучше.

А вот PNG-8 разбил все мои (и большинства коллег) стереотипы. Итоговый файл гораздо меньше GIF’а и существует полноценная поддержка прозрачности двумя способами: alpha и index transparency. Единственным минусом по сравнению с PNG-24 остаётся индексная палитра, хотя всё зависит от потребностей. Моё личное мнение –

PNG-8 в большинстве случаев уделывает и GIF, и PNG-24.

PNG против GIF в AF, хотя как раз с привычными GIF-JPEG Fireworks работает по умолчанию не очень (с настройками я не игрался). Но даже в сравнении с Photoshop’овским результатом разница в пользу PNG:

И вот всё разнообразие PNG-8 — ради этого стоит устанавливать Adobe Fireworks:

Для сравнения: тот же файл стараниями Photoshop весил 3 188 байт против полученных теперь 450, то есть раз в 6 больше.

Вердикт

По-моему, GIF своё уже отжил. Теперь его существование – в первую очередь вопрос инертности общества.

UPD

Впрочем, сегмент разных анимационных приятностей Всё рано пока остаётся за GIF :).

Для прозрачных элементов дизайна стоит использовать PNG-8 (реже PNG-24, когда палитры PNG-8 недостаточно для сохранения изображения без потерь).

Для фотографий и сложных графических элементов лидером по-прежнему остаётся JPEG из-за мощных возможностей оптимизации изображения. Хотя в некоторых случаях может оказаться достаточно и PNG-8 – как и раньше, с GIF’ом, смелые эксперименты – залог успеха.

UPD Но для действительно больших изображений всё же JPEG проигрывает.

Всем веб-дизайнерам и верстальщикам рекомендую устанавливать Adobe Fireworks и взглянуть на PNG в новом ракурсе.

UPD Я действительно не специалист и обзор писался на коленке, о чём говорит эпитет «краткий»; возможно, не на лучших примерах. Поэтому спасибо всем, кто принял активное участие в обсуждении, особенно kmike и @merlin_rterm. В процессе узнал для себя много нового, в частности, специфику сжатия PNG и что JPEG-100 все равно с потерей качества. Большая часть этих интересностей добавлены прямо в тексте статьи, для того, чтобы не отрывать их от контента.

Обновил иллюстрации. К сожалению, сервис, на котором размещены картинки, не хранит PNG, всё равно конвертируя его в JPEG. Но теперь, по крайней мере, качество лучше. Ещё раз повторюсь – моей целью не было сравнивание артефактов, а только килобайты и ещё раз килобайты итоговых файлов.

Источник – Just Kitich блог.

Про PNG. Часть первая

Общаясь со своими коллегами на различных семинарах и в студии, я пришел к выводу, что для многих единственным преимуществом формата PNG является наличие честной полупрозрачности. Если поискать в интернете информацию об этом формате, несложно заметить, что веб-разработчики разделились на два лагеря. Первые пишут о том, какой этот формат замечательный, оперируя чисто техническими данными, непонятными обычным кодерам и дизайнерам (к примеру, о превосходстве deflate-алгоритмов сжатия над LZW), другие же оставляют комментарии разной степени глупости о бесполезности PNG, не потрудившись даже вникнуть в суть вещей, описанных в спецификации.

Попробуем разобраться, какие преимущества дает этот формат, чтобы научиться ими пользоваться при подготовке иллюстраций для веба.

Начнем с терминологии. Предполагаю, что большинство читателей пользуются фотошопом и встречали там названия PNG-8 и PNG-24. Это не два разных формата, а всего лишь вариации одного и того же PNG. Формат позволяет хранить три типа изображений: greyscale (для описания изображения используется один канал — белый), indexed-colour (используется палитра цветов, как в GIF) и truecolor (используется три канала — RGB).

Самое главное преимущество формата PNG — это, конечно же, новые алгоритмы сжатия. Все помнят, что GIF эффективно сжимает только горизонтальные одноцветные области? Про это ограничение теперь можно забыть:

GIF, 2568 байт PNG-24, 372 байта

Вторым важным преимуществом является фильтрация строк (scanline filtering, или delta filters), благодаря которой PNG-упаковщик может получить гораздо более удобные данные для сжатия.

Рассмотрим на примере, как они работают. Возьмем изображение 5×5 пикселей с горизонтальным градиентом и схематично отобразим, как оно может быть сохранено в файле (каждое число — уникальный цвет).

Хозяйке на заметку

Считаю своим долгом отметить, что цвет в формате RGB хранится в виде одного числа, а не трех (на каждый канал). Например, цвет R: 253, G: 93, B: 69 хранится как число 16604485 в десятичной системе счисления или как #fd5d45 — в шестнадцатеричной.


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

Перед каждой строкой появилась цифра 2. Это — фильтр, который был применен к строке. В данном случае это фильтр Up, который говорит декодеру: «Для текущего пикселя возьми значение пикселя выше и прибавь к нему текущее значение». В нашем случае это 0, потому что цвета текущего и верхнего пикселей не отличаются. А эти данные можно эффективней упаковать, если у нас достаточно большое изображение.

Почему я написал может? Потому что в нашем идеализированном случае более эффективной была бы такая схема:

Тут применен фильтр 1 под названием Sub, который говорит декодеру: «Возьми значение пикселя левее текущего и прибавь ему текущее значение». В данном случае 1.

После фильтрации все строки (вместе со значениями фильтров) объединяются в одну последовательность, которая затем сжимается deflate-алгоритмами (их обсуждение выходит за рамки этой статьи).

Хозяйке на заметку

Всего существует 5 фильтров: None (никакой фильтрации), Sub (от текущего значения отнять значение левого пикселя), Up (отнять верхний пиксель), Average (отнять среднее значение левого и верхнего пикселей) и Paeth (подставить значение верхнего, левого или верхнего левого пикселя, назван в честь Алана Паэта).


Проверим работу фильтров:

PNG-24, фильтр None
56084 байта
PNG-24, фильтр Up
23585 байт

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

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

PNG-24 (фотошоп → truecolor),
8167 байт
PNG-24 (фотошоп + OptiPNG → greyscale),
6132 байта

Преимущества greyscale над truecolor очевидны: к примеру, белый цвет в первом случае записывается (в десятичной системе счисления) числом 255, а во втором — 16777215.

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

РАСШИРЕНИЕ ФАЙЛА PNG — ЧТО ТАКОЕ ФАЙЛ .PNG И КАК ЕГО ОТКРЫТЬ? — РАСШИРЕНИЕ

разработчикN / A популярность 4,2 (607 голосов) категорияРастровые изображения ФорматБинарный Х Этот файл сохраняется в двоичном формате, который требует определенной программы для чтения его содержи

Тип файлаПортативная сетевая графика

разработчикN / A
популярность 4,2 (607 голосов)
категорияРастровые изображения
ФорматБинарный Х

двоичный

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

Что такое файл PNG?

Файл PNG — это файл изображения, хранящийся в формате Portable Network Graphic (PNG). Он содержит растровое изображение индексированных цветов и использует сжатие без потерь, аналогичное файлу .GIF, но без ограничений авторского права. Файлы PNG обычно используются для хранения графики для веб-изображений. Дополнительная информация

.PNG Расширение файла [/ DFN] image / png_79.jpg «>

PNG файл открывается в Microsoft Windows Фотографии

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

Изображения в формате PNG нельзя анимировать, как изображения в формате GIF. Тем не менее, связанный формат .MNG может быть анимирован. Изображения PNG не обеспечивают поддержку цвета CMYK, поскольку они не предназначены для использования с профессиональной графикой. Изображения PNG теперь поддерживаются большинством веб-браузеров.

НОТА: Mac OS X 10.4 и выше сохраняет скриншоты в виде файлов PNG. Ubuntu Linux также сохраняет снимки экрана печати в формате PNG.

Распространенные имена файлов PNG

Снимок экрана ГГГГ-ММ-ДД в ЧЧ.ММ.СС PM.png — Имя, данное скриншотам, сделанным в Mac OS X, где временная метка включена в имя файла.

БЕСПЛАТНАЯ ЗАГРУЗКА Открывайте и просматривайте файлы .PNG с помощью File Viewer Plus. Программы, открывающие файлы PNG
Windows
File Viewer Plus
Microsoft Фотографии
Microsoft Windows Photo Viewer
Microsoft Paint
Adobe Photoshop CC 2019
Adobe Photoshop Elements 2019
Adobe Illustrator CC 2019
CorelDRAW Graphics Suite 2018
Corel PaintShop Pro 2019
ACD Systems ACDSee Photo Studio
ACD Systems Canvas X 2019
Roxio Creator NXT Pro 6
Другой просмотрщик картинок
Другой веб-браузер
макинтош
Apple Preview
Apple Фотографии
Apple Safari
Adobe Photoshop CC 2019
Adobe Photoshop Elements 2019
Adobe Illustrator CC 2019
Roxio Toast 17
MacPhun ColorStrokes
Другой просмотрщик картинок
Другой веб-браузер
Linux
GIMP
Другой просмотрщик картинок
Другой веб-браузер
Web
Гугл Диск
Microsoft OneDrive
IOS
Гугл Диск
Pixelmator 2
Microsoft OneDrive
Adobe Photoshop Express
Android
Просмотрщик файлов для Android
Гугл Диск
Microsoft OneDrive
Adobe Photoshop Express
Обновлено 26.02.2009

О файлах PNG

Наша цель — помочь вам понять, что такое файл с суффиксом * .png и как его открыть.

Тип файла Portable Network Graphic, описание формата

Простое введение в особенности формата

Greg Roelofs, <[email protected]> http://pobox.com/~newt

Иван Зенков, <[email protected]>

Dimok Busheff, <[email protected]>

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

Вот ещё несколько страниц сторонних авторов, с различными взглядами на PNG:

Примечание:

Прошу вас особенно обратить внимание на то, что весь нижеприведённый текст это по сути перевод A Basic Introduction to PNG Features (ни о каком GFDL здесь и речи быть не может). По ходу дела я буду высказывать своё скромное мнение на счёт PNG в частности и графики вообще (и вот это мнение уже может распространяться под GFDL).

Если найдёте какие-то неточности, устаревшие фрагменты в данном документе или новые особенности и недостатки PNG не описанные здесь, то Greg ждёт от вас писем. Ну, а я в свою очередь жду исправлений, дополнений и так далее, к самому переводу.


Область применения

Формат PNG (Portable Network Graphics) спроектирован для замены устаревшего и более простого формата GIF, а также в некоторой степени для замены значительно более комплексного формата TIFF (см. официальный сайт PNG или хронологическую страницу для дополнительной информации). В данном документе мы сосредоточимся на двух основных направлениях в использовании формата. Первое, использование во всемирной паутине (WWW) и второе, графическое редактирование.

Для вэб PNG действительно имеет три основных преимущества перед GIF: альфа-каналы (переходная прозрачность), гамма-коррекция (межплатформенное управление яркостью изображения), двумерная чересстрочность (метод прогрессивной развёртики). Он обладает превосходным уровнем сжатия по сравнению с GIF, но различия колеблются около 5-25%, что не так уж и много для того, чтобы подвигнуть людей использовать только этот формат. Существует одна особенность GIF которую PNG не пытается воспроизвести, это поддержка множественного изображения, особенно мультипликации, PNG был предназначен лишь для одного изображения. Существует очень схожий с PNG расширенный формат называемый MNG, завершён в середине 1999 года и уже поддерживается в различных приложениях, но MNG и PNG имеют различные расширения и различные цели.

Для редактирования изображения, как профессионального так и не очень, PNG предоставляет отличный формат, даже для хранения промежуточных стадий редактирования. Поскольку сжатие происходит полностью без потерь и поскольку формат поддерживает 48-битный «truecolor» или 16-битный «grayscale«, сохранение, восстановление и пересохранение изображения проходят без потерь в качестве в отличии например от стандартного JPEG (даже с максимально высоким уровнем качества). В отличие от TIFF PNG спецификация не позволяет авторам реализаций привередничать выбирая какие возможности они собираются реализовать; как результат, любое сохранённое PNG изображение в одном приложении, может быть прочитано в любом другом приложении поддерживающим PNG.

За перечислением плюсов PNG, прошу обратить ваше внимание, что часто для обмена целостными «truecolor» изображениями (особенно фотографическими) JPEG — почти всегда лучший выбор. Хотя сжатие JPEG производиться с потерями при которых могут появляться артефакты, их всё же можно минимизировать, а вот размер файла даже на высококачественном уровне значительно меньше, чем в случае с форматами сжатия без потерь, вроде того же PNG. Также например для чёрно-белого изображения, особенно текста или рисунков, сжатие TIFF Group 4 или формат JBIG часто значительно лучше подходит, чем 1-битный «greyscale» PNG.

Примечание:

В последнем случае я с автором всё таки не согласен. Да действительно часто предпочтительней использовать JPEG, особенно для фотографий. Но это лишь в том случае, когда изображение не имеет для вас первичного приоритета, то есть второстепенно. Отправляя же например свою фотографию девушке, я бы не рискнул сохранить её в JPEG. Не говоря уже о таких случаях, когда я девушке отправляю не свою фотографию, а изображение своего рабочего стола. В последнем случае все эти артефакты всё равно проявятся и испортят общее впечатление от моих огромных SVG иконок. В случае же с чёрно-белыми изображениями из выше перечисленного я бы вообще ничего использовать не стал. По мне дак, для таких задач (а подразумевались отсканированная документация) я бы вообще использовал замечательный формат DjVu, о котором уже как-то писал.


Сжатие

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

PNG поддерживает три основных типа изображения, это: «truecolor«, «grayscale» и индексированное на основе палитры (8-битный). JPEG поддерживает только два первых, а GIF лишь третий (хотя при использовании серой палитры может фальсифицироваться и «grayscale«). Плотность сжатия происходит из способности смешивать различные типы изображения в одном PNG файле. Заставляя приложение сохранить 8-битное изображение как 24-битный «truecolor» (или RGB), в результате вы не получите маленького файла. Это может быть неизбежно в случае когда оригинал был изменён с добавлением более 256 цветов (например если в качестве фона был добавлен сплошной градиент), но многие изображения преднозначеные для сети, состоят из 256 цветов, а иногда и всего из нескольких (например из десяти).

Основная ошибка, это включение слишком большого количества данных палитры в PNG изображение. Эта ошибка наиболее заметна при конвертировании небольших GIF изображений (маркеров, кнопок и др.) в формат PNG. Эти изображения занимают в среднем 1000 байт и содержат 256 вводных в палитру данных из которых необходимы лишь 50, что приводит более чем к 600 байтам потраченного впустую пространства.

Примечание:

Имеется введу сохранение индексированного изображения в RGB, RGBA или просто с лишними данными в палитре, то есть лишними цветами.

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

Под конец ещё несколько слов о сжатии. Механизм сжатия может быть установлен на быстрый или качественный уровень. Часто «качественное сжатие» предпочтительнее, но иногда может быть выбран промежуточный уровень, например для повышения интерактивной производительности. Обычно (независимо от настроек) различия в размере файлов минимальны, но порой они бывают просто огромны.

Примечание:

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

Для дополнительной информации относительно механизма сжатия PNG и алгоритма CRC-32 посетите официальный сайт zlib. Для альтернативной реализации алгоритма сжатия посетите официальный сайт 7-Zip и почитайте «Введение в компрессию» для описания сжатия вообще. Для инструментария оптимизации и сжатия PNG изображений, посетите страницу со списком конвертеров (особое внимание обратите на pngcrush и SmartSaver).

Примечание:

Автор не упомянул наверное одну из лучших программ в своём роде, называется она OptiPNG (542KB) и доступна «as-is» под несколько операционных систем (существует ещё версия OptiPNG Plus, но у неё с «public-domain» проблемы).

Лучшей OptiPNG я посчитал из-за простоты использования хотя бы по сравнению с тем же pngcrush, о котором упоминалось выше.

Итак, за собственно сам уровень сжатия в OptiPNG отвечают следующие ключики:

  • -i: тип чересстрочности (0-1)
  • -zc: уровни сжатия zlib (1-9), по умолчанию 9
  • -zm: уровни памяти zlib (1-9), по умолчанию 8
  • -zs: стратегии сжатия zlib (0-2)
  • -f: дельта-фильтры PNG (0-5)

Справку по остальным ключам программы можно получить набрав optipng —help, впрочем нам они всё равно не понадобиться, как не понадобятся и выше перечисленные ключики. Разработчик OptiPNG позаботился о пользователях, снабдив программу специальным ключом оптимизации -o (0-7), по умолчанию 2. По сути ключ -o это определённая комбинация из вышеперечисленных ключей. Так -o2 будет -zc9 -zm8 -zs0-2 -f0,5, а -o3 будет -zc9 -zm8-9 -zs0-2 -f0,5, самым же эффективным является -o7 тест с которым я и покажу.

Для теста было выбрано олигархическое полотно замечательного художника Владимира Куша, предварительно обработанное GIMP’ом (стабильная версия 1.2) и сохранённое в RGBA как PNG с отключёнными параметрами и степенью сжатия 9. В результате было получено изображение в 135168 байт, если верить моему кривому du. Сжатие производилось OptiPNG версии 0.4.3, осуществлялось командой optipng -k -o7, ключ -k нужен, чтобы при оптимизации не был удалён оригинальный файл. В результате файл с оптимизированным изображением весил 118784 байт полагаясь на тот же du.

Как видите, оптимизация налицо, и всё это без каких-нибудь потерь в качестве (да в случае с PNG их и не могло быть). Так первое изображение (слева) это оригинал сохранённый в GIMP‘е (помните максимальный уровень сжатия?), второе — оптимизированный вариант.

«Чудо» — скажете вы и будете в корне неправы, ведь чудеса если и бывают, то явно не в данном случае. Нет это действительно было не чудо, это была ещё одна распространённая ошибка. Некоторые люди создавая новое изображение в GIMP‘е (да и других редакторах) выбирают прозрачный фон в качестве заливки (в диалоге «Новое изображение» GIMP‘а даже раздел «Тип заливки» имеется), и, почему-то, им кажется, что раз прозрачный, то и на размере это не отразиться. Разумеется, на размере это отражается, и отражается в большую сторону, поскольку добавляется альфа-канал (помните, что изображение я сохранил в RGBA?). OptiPNG, как программа умная, всё это замечает и удаляет, предоставляя нашему вниманию нормальное изображение. GIMP за сим же процессом ещё при сохранении не следит полагаясь на благоразумность пользователя. Бороться с ошибкой можно выбирая в качестве заливки какой-нибудь цвет ещё при создании изображения (в GIMP‘е начиная с версии 1.3, можно вообще на задавать заливку, получив весьма странный нулевой фон). А OptiPNG действительно замечательная программка, она позволяет избавить PNG файл не только от программных ошибок, но и от людских тоже. Советую, особенно для оптимизации больших коллекций, Бог знает кем и как созданных изображений.


Фильтры сжатия

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

Посредством примера (по общему признанию критический и нереалистичный случай), 512 x 32,768 изображение содержит все 16,777,216 возможные в 24-бита цвета, сжимается более чем в 300 раз лучше с фильтрацией, чем без. Несжатое изображение весило 48MB, сжатое, но без фильтров 36MB, а версия с фильтрами всего 115,989 байт (0.1 MB). Более того, Paul Schmidt создал 4096 x 4096 версию размером 59,852 байт, с общим коэффициентом сжатия 841:1, что более чем в 600 раз лучше версии без фильтров. Ted Samuels пропустил всё это через утилиту Ken‘а Silverman‘а PNGOUT (ссылки на другие конвертеры ищите на специальной странице) и урезал до 57,549 байт, добившись тем самым коэффициента в 875:1 (см. эту страницу для загрузочной версии и дополнительной информации).

Более реалистичный пример с океанографическими данными NASA на сайте Ocean ESIP. Цифровые карты отображающие различные физические измерения, могут быть динамически сгенерированы в GIF или PNG. PNG версии неизменно равны одной-пятой версии GIF, благодаря фильтрам сжатия. Для примера, карта показывающая высоту поверхности северо-восточного Тихого океана 1 Августа 1997 года (во время El Niño) занимает 70,090 байт в GIF, и всего 13,880 байт в PNG (см. главу Алгоритмы фильтров из PNG спецификации).

Как измерение, всё это просто кажется нереалистичным, однако заметьте, что эти, с виду гиперсжатые, PNG могут самостоятельно быть сжаты с дополнительным коэффициентом где-нибудь приблизительно от 21 до 97 (в зависимости от изображения) простым применением gzip. Конечно, gzip PNG не так ужасно полезны в большинстве случаев, а вот MNG хорош для всего, сокращая размер на 456 байт.


Альфа-каналы

Также известный как маска-канал, альфа-канал это просто способ объединить переходную прозрачность с изображением. Принимая во внимание, что GIF поддерживает простую бинарную прозрачность (это когда любой пиксель может быть либо полностью прозрачным, либо абсолютно непрозрачным), PNG позволяет 254 уровня частичной прозрачности между нормальным изображением (или 65,534 уровня прозрачности для специальных «очень безумных» форматов, но здесь мы больше концентрируемся на изображениях, используемых в интернете).

Все три типа PNG изображений («truecolor«, «grayscale» и индексированная палитра) могут содержать альфа-информацию, хотя обычно она применяется лишь с «truecolor» изображениями. Вместо того, чтобы сохранять три байта для каждого пикселя (красный, зелёный и синий), сохраняются четыре: красный, зелёный, синий и альфа, таким образом получается RGBA. Вся эта переходная прозрачность позволяет вам создавать замечательные «спецэффекты», хорошо выглядящие на любом фоне. Например эффекта фотовиньетки, для портрета, можно добиться путём установки полностью непрозрачной центральной области (то есть для лица и плеч), прозрачной остальной обстановки и с созданием плавного перехода между двумя этими различными областями. Рассматривая изображение в браузере типа Arena, портрет будет плавно осветляться на белом фоне, и затемняться на чёрном. Ещё один идеальный спецэффект с альфа-прозрачностью, это отбрасывание тени. Так на изображениях ниже показан тукан, в первом случае отбрасывающий тень на красочный фон, во втором на свою копию.

Эта особенность с прозрачность наиболее важна для маленьких изображений, обычно используемых на вэб-страницах, вроде цветных (круглых) маркеров или причудливого текста.

Альфа-смешивание позволяет использовать другой эффект, а именно сглаживание (anti-aliasing) создавая иллюзию гладких кривых на сетке прямоугольных пикселей плавно изменяя их цвета, что позволяет добиться округлых и кривых изображений, хорошо отображаемых как на белом (к примеру), так и на любом другом фоне. Таким образом одно и тоже изображение может быть многократно использовано в нескольких местах без «призрачного» эффекта, свойственного GIF изображениям.

Примечание:

Я не очень-то понял, в чём заключается этот «призрачный эффект». Было несколько вариантов, среди которых наибольшую проблему в GIF у меня вызывали изображения созданные для одного фона, но наложенные на другой, приблизительно так же, как я сделал со знаменитым зверьком O’Reilly Network, только ещё хуже.

Конечно эффективная замена GIF-кнопкам и иконкам должна быть сравнима по размеру, и часто приходится исключать «truecolor» RGBA изображения. Впрочем точно также PNG поддерживает альфа-информацию и в случае с индексированными изображениями, просто это намного труднее осуществить. Изображение в PNG с альфа-индексацией — это изображение, чья палитра обладает альфа-информацией, связанной с ней, а не индексированное изображение с полной альфа-маской. Другими словами каждый пиксель соответствует данным из палитры с красными, зелёными, синими и альфа компонентами. Так, если вы хотите получить яркие красные пиксели с четырьмя различными уровнями прозрачности, вам потребуется использовать четыре отдельных ячейки в палитре, чтобы их индексировать (все четыре ячейки обладают идентичными RGB компонентами, но альфа значения различаются). Если вы хотите чтобы все ваши цвета имели четыре уровня прозрачности, вам проще сократить общее количество доступных цветов с 256, до 64. В основном только некоторые цвета нуждаются более чем в одном уровне прозрачности, и выяснение какие именно, процесс требующий определённой мудрости. Можно взглянуть на программу pngquant, которая конвертирует 32-битные RGBA PNG в 8-битные изображения с RGBA-палитрой. Для программистов доступен исходный код программы.

Для более лучшего объяснения с красивыми примерами, смотрите главу «Прозрачность и сглаживание» замечательной WWW4 статьи Chris‘а Lilley‘я Не просто декорация: Качественная графика для вэб.

Примечание:

К стати, поразительная вещь, но GIMP, кажется, об этом не в курсе. Сколько раз я не пытался сохранить в нём прозрачное индексированное PNG изображение, мои попытки оканчивались неудачей. То есть RGBA пожалуйста, «grayscale» на здоровье, а вот чтоб индексированное с прозрачностью, ни в какую. Что же всё таки делать, если понадобилось небольшое прозрачное изображение? Ну, выход, как всегда, есть, и о нём уже говорилось выше, нужно просто использовать pngquant (24KB).

В начале я создал обычное RGBA изображение, взяв за основу уже индексированную когда-то картинку (не очень сильно) с персонажем замечательной игры DROD. Затем командой pngquant 64 rgba.png получил нужное мне индексированное изображение с прозрачностью. Там где 64, я установил количество необходимых мне цветов, а rgba.png это файл первого изображения. Думаю несложно догадаться, что первое изображение это и есть мой первоначальный вариант (весил он 12288 байт), а второе это индексированный вариант с прозрачностью (занимал всего 8192 байт).

Индексированное подобным образом изображение, успешно отобразили GQview (не создав иконки в предварительном просмотре), Opera и Mozilla. Проблемы были разумеется с GIMP‘ом (версии 1.2, 1.3) и Konqueror’ом (версии 3.1.4).

Впрочем, несмотря на все минусы, единственным способом уменьшить размер PNG файла, помимо сжатия, остаётся индексирование. А в случае когда с индексированием необходим ещё и альфа-канал, pngquant становиться практические незаменимым инструментом. И очень жаль, что свободное ПО таких масштабов как GIMP не знает всех возможностей формата PNG, да ещё и при том, что исходники того же pngquant доступны «as-is«.


Гамма-коррекция

Гамма-коррекция существует для исправления различий того, как компьютеры (а особенно мониторы) интерпретируют цветовые значения. Вэб-дизайнеры, вероятно, знают случаи, когда созданные на Macintosh изображения выглядят слишком тёмными на PC, или созданные на выглядят слишком светлыми на Mac‘ах. Изображение, которое хорошо смотрится на SGI Workstation, не хочет отображаться на Macintosh или PC. Изображение созданное на одном PC неверно отображается на всех остальных.

Гамма-информация — частичное решение. Это способ связи некоего числа с компьютерной системой отображения, в попытке характеризовать хитрую физику, скрывающуюся в пределах цифро-аналогового конвертера графической карты (RAMDAC) и в высоковольтной электронной пушке монитора.

Параметр гамма — это только приближение к действительности. Лучшей аппроксимацией является использование так называемых значений цветности (chromaticity values — также поддерживаемых в PNG), в качестве той же гаммы, но даже это лишь приближение. Самое лучше решение, доступное на данный момент, это использование системы управления цветом (которая опять же поддерживается PNG через расширение фрагментом sRGB). Стоит, однако, сказать, что для большинства людей достаточно лишь установить гамму изображения и настроить гамму системного монитора.

Для дополнительной информации смотрите руководства Chris‘а Lilley: гамма, цветность и управление цветом, или почитайте «Гамма-руководство» в дополнении к спецификации PNG. Для более детальной технической информации смотрите «FAQ: Гамма и цвет» Charles‘а Poynton‘а, официальный сайт Интернационального Цветового Консорциума, домашнюю страницу sRGB или главу «Гамма-коррекция» в статье Chris‘а Lilley Не просто декорация: Качественная графика для вэб.


Чересстрочность

Чересстрочность или прогрессивная развёртка, была известна на протяжении долгого времени. GIF стал поддерживать её с 1989-го, TIFF приблизительно в тоже время (хотя не стандартизированным путём), JPEG с начала 90-ых (хотя это не было широко распространено до 1996-го). Метод чересстрочности PNG концептуально схож с GIF и визуально подобен прогрессивному JPEG (то есть, двухмерен).

Вот GIF анимация (автор Willem van Schaik), показывающая преимущества двухмерной чересстрочной схемы PNG, по сравнению с одномерной версией GIF.

Первое, на что следует обратить внимание, так это на то, что пока видна приблизительно одна восьмая изображения в GIF, PNG изображение уже становиться видимым сразу же после выполнения первого прохода. Первый проход PNG это только 1/64-ая часть данных изображения. Первый проход GIF 1/8-ая. К тому времени, когда первый проход GIF завершился, уже были отображены четыре прохода PNG, и в отличие от GIF-пикселей, растянутых с коэффициентом 8:1, пиксели PNG были растянуты лишь на 2:1. Более того, на самом деле в нечётных проходах никакого растяжения нет вообще и только чётные растягиваются вертикально на 2:1. Это означает, что, например, внедрённый в изображение текст будет доступен для чтения в два раза быстрее, в PNG изображении.

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


Проверка целостности файла

PNG поддерживает три основных типа проверки целостности, для помощи программам в работе с файлами. Первый и самый простой — 8-байтная магическая сигнатура в начале любого PNG изображения. Позволяет обнаружить наиболее основное повреждение файла — передачу бинарного файла в текстовом (или ASCII) режиме. На большинстве систем, окончание строки в текстовых файлах отмечается символом возврата каретки (CR), символом перевода строки (LF), либо и тем и другим сразу. Macintosh используют CR, UNIX системы используют LF, все остальные не UNIX системы на PC (DOS, Windows 3.x/95/NT, OS/2) используют CR/LF. Магическая сигнатура PNG грамотно включает как CR/LF, так и LF. Так, для теста передадим в текстовом режиме изображение, на DOS-машину, к LF будет добавлен CR. На UNIX-системах, CR/LF будут преобразованы в обычный LF. На Macintosh и CR/LF, и LF будут преобразованы в CR. Для того, чтобы узнать произошло ли текстовое искажение, достаточно взглянуть на первые восемь, девять байт файла (команда file в UNIX спроектирована специально для таких вещей). Имейте введу, что проблема не в испорченной сигнатуре, реальная проблема состоит в том, что символы CR и LF в данных изображения могут быть опознаны не как конец строки или текст, а как значения пикселей или более абстрактные лексемы компрессора, и все эти символы будут также преобразованы, таким образом разрушая изображение.

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

Третий тип проверки целостности применим лишь к кусочку/кусочкам данных изображения и схож с CRC-значениями. Так где CRC-значения кусочков изображения обращается к фильтрованным, сжатым данным в кусочке, контрольная сумма Adler-32 обращается к завершённому потоку распакованных данных (независимо от того, сколько кусочков изображения могли быть охвачены). В действительности это используется лишь в библиотеках сжатия самого нижнего уровня как средство проверки плохо кодирующего/декодирующего программного обеспечения.

Для более подробной информации смотрите главу «Структура файла» из спецификации PNG.


Произношение

Нет второстепенных вопросов для авторов почти совершенного формата! Да, действительно, даже акроним и произношение были главными темами обсуждения. Причина этому конечно GIF. Кто-то произносит с мягким «G», как «джемпер», кто-то с жёстким, как «гараж» и никто в действительности не знает почему. Но, чтоб вы знали в данном случае правильным будет мягкое «G», поскольку так говорят сами авторы.

PNG всегда пишется по буквам «PNG» (или Portable Network Graphics) и произносится как «пинг», а не «пинджи» или «пэ эн гэ» (впрочем вполне нормально, что люди не говорящие на английском произносят PNG по буквам).

Для более чётких инструкций относительно данного вопроса, смотрите введение в PNG спецификации.

Примечание:

Под конец пара слов относительно использования данного формата в вэб, а точнее относительно связанных с этим проблем. Первая из них, и о ней уже много говорили, это патент на LZW (замечательный алгоритм сжатия применяющийся в GIF, не хочу сказать лишнего, но мне кажется, что он сжимает лучше, чем все эти zlib, используемые в PNG) принадлежащий Unisys. Хорошая новость в том, что патент на территории США истёк 20 Июня, 2003 года. Плохая в том, что он всё ещё действует на территории таких стран как Италия, Франция, Канада, Германия, Англия и Япония. Понятно, что Россия всегда в стороне от подобных вопросов, и каждый что-то решает для себя.

Удивительно то, что альтернатива-то в лице PNG, да и не альтернатива даже, а нечто большее, уже существует давно. То есть действительно PNG большее, ведь он используется во всех современных desktop-системах, его альфа-прозрачность это просто праздник какой-то и для рабочих столов, и для интернета. Здесь другая проблема, Internet Explorer его не поддерживает, точней не поддерживает прозрачность. С этим есть несколько способов борьбы, в определённой мере они действенны. Вообще в подобные вопросы я бы даже вникать не стал. То, что Microsoft не поддерживает формат, проблемы Microsoft, а не формата.

Огорчает не только Microsoft (и я об этом уже говорил), огорчает свободное программное обеспечение. Все эти странные проблемы с тем же Konqueror‘ом… Я уже не говорю о GIMP‘е. Не говорю хотя бы потому, что не использовал все эти новые версии 2.0. Просто надеюсь, там всё исправили.

Copyright 2004, Иван Зенков

Данный документ (кроме отдельно указанных частей, переводного текста и др.) распространяется в соответствии с GNU Free Documentation License опубликованной Free Software Foundation и изготовлен в полном соответствии со стандартами w3 консорциума.

Все торговые марки, названия и логотипы использованные или упомянутые в этом документе, принадлежат своим владельцам.

Остальные мои статьи можно найти на моей страничке на сайте Rus-Linux.net

Если вам понравилась статья, поделитесь ею с друзьями:


JPEG и PNG — в чём разница форматов?

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

Формат JPEG

JPEG (он же JPG) — это формат изображений, который использует сжатие с потерями и не поддерживает прозрачность. Позволяет настраивать уровень качества сохраняемого изображения — при его снижении удаляются детали и добавляются шумы на изображение, однако размер становится более компактным. JPG в зависимости от настроек может обеспечить сжатие как 2:1, так и 100:1 — но качество прямо пропорционально коэффициенту сжатия. Название формата — аббревиатура от Joint Photographic Experts Group.

JPEG поддерживает цветовые пространства 24-bit RGB и CMYK, а также 8-bit Grayscale. CMYK и Grayscale используются достаточно редко и их поддержка вызывает нарекания.

Также JPEG имеет интегрированную поддержку EXIF, позволяющую хранить метаданные, например: производитель и модель использованной камеры, используемая для съёмки выдержка, диафрагма и светочувствительность, разрешение кадра, настройки баланса белого, фокусное расстояние (в т.ч. эквивалентное), использование вспышки, размер матрицы,  дата и время съёмки, географические координаты и адрес места съёмки.

Используемые расширения для файлов — .jpg and .jpeg (работают идентично).

С прикладной точки зрения JPEG оптимален для изображений с большим количеством цветов, например, для фотографий.

Формат PNG

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

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

PNG до 2017 года не поддерживал EXIF, но затем его поддержка была реализована в стандарте. В фотографии PNG используется редко — для компактного хранения файлов больше подходит JPEG, а для профессиональной работы лучше подходят RAW-форматы DNG или TIFF.

PNG 24 и PNG 8 используют расширения для файлов .png, используемая битность записывается в метаданные файла и по расширению не определяется.

С прикладной точки зрения PNG 24 оптимален для изображений с небольшим количеством цветов, например, для иконок, схем, рисунков и скриншотов. Если же цветов в изображении меньше 256, то еще более эффективное сжатие возможно в PNG 8.

Резюме. JPEG и PNG — какой формат оптимальнее использовать?

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

Иконки, схемы, картинки с большим количеством текста и изображения с прозрачностью оптимальнее сохранять в PNG 24. Алгорим компрессии PNG 24 сжимает изображения без потери качества.

PNG — формат файла. Чем открыть PNG?

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

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

Что находится в файлах PNG

Файл с расширением файла PNG является файлом Portable Network Graphics. Формат использует сжатие без потерь и обычно рассматривается как альтернатива GIF. Но в отличие от GIF, в файлах PNG не поддерживается анимация.

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

Как открыть файл PNG

Чтобы открыть PNG файлы, можно использовать любой интернет-браузер или графический редактор. И платформа ОС Windows, и Mac OS имеют встроенные механизмы для просмотра таких изображений. Программа Png — Просмотр фотографий Windows по умолчанию часто используется для открытия файлов PNG, поскольку это системная программа Windows. Но существует много других способов их просмотра.

Все браузеры (например, Chrome, Firefox, Internet Explorer и т. д.) будут автоматически просматривать файлы PNG, которые вы открываете в Интернете, а это означает, что не нужно загружать на компьютер каждый PNG файл, который вы хотите посмотреть. Вы также можете использовать браузер для открытия уже имеющихся на компьютере PNG файлов при помощи комбинации клавиш Ctrl + O. Большинство таких программ также поддерживают drag-and-drop, поэтому можно просто перетащить PNG файл в браузер, чтобы открыть его.

Также существует несколько автономных вариантов для открытия таких изображений – это специальные графические редакторы. Несколько популярных — XnView, IrfanView, FastStone Image Viewer, Google Drive, Eye of GNOME и gThumb. Для редактирования PNG файлов можно использовать практически любую из перечисленных программ, приложения Paint и Paint.NET, популярную утилиту GIMP, а также всем известный Adobe Photoshop.

Конвертация PNG

Файлы изображений можно преобразовывать различными способами, например, конвертировать в png и из него с помощью различных программ и онлайн сервисов. Например, это позволяет делать редактор Png — Фотоконвертер.

404: Страница не найдена

WhatIs.com Ищите тысячи технических определений Просмотреть определения :
  • А
  • Б
  • С
  • D
  • E
  • Ф
  • G
  • H
  • я
  • Дж
  • К
  • л
  • м
  • N
  • O
  • квартал
  • R
  • S
  • т
  • U
  • В
  • Вт
  • Х
  • Я
  • Z
  • #
Авторизоваться регистр
  • Сеть Techtarget
  • Технический ускоритель
RSS
  • Что такое.com
  • Просмотреть определения По теме

    Выберите категорию

    • AppDev
    • Программное обеспечение для бизнеса
    • Компьютерные науки
    • Consumer Tech
    • Дата-центр
    • ИТ-менеджмент
    • Сеть
    • Безопасность
    • Хранение и данные Mgmt
    AppDev Просмотреть все
    • Гибкая, Скрам, XP
    • Яблоко
    • DevOps
    • Интернет-приложения
    • Java
    • Linux
    • Microsoft
    • Открытый исходный код
    • Операционные системы
    • Программирование
    • Программные приложения
    • Разработка программного обеспечения
    • Веб-сервисы, SOA
    Программное обеспечение для бизнеса Просмотреть все
    • Amazon Web Services (AWS)
    • Google — Android
    • Microsoft — Windows
    • Открытый исходный код
    • Оракул
    • Salesforce
    • SAP
    • VMware
    • Письмо для бизнеса
    Компьютерная наука Просмотреть все
    • Алгоритмы
    • Искусственный интеллект — машинное обучение
    • Основы вычислительной техники
    • Электроника

Типы MIME (типы носителей IANA) — HTTP

A тип носителя (также известный как Многоцелевые расширения почты Интернета или тип MIME ) является стандартным который указывает на характер и формат документа, файла или набора байты.Он определен и стандартизирован в IETF RFC 6838.

Управление по распределению номеров в Интернете (IANA) отвечает за все официальные типы MIME, и вы можете найти самые свежие и полный список в их типах СМИ страница.

Важно: браузеры используют тип MIME, не файл расширение , чтобы определить, как обрабатывать URL-адрес, поэтому важно, чтобы веб- серверы отправляют правильный тип MIME в ответе Content-Type заголовок.Если это неправильно настроено, браузеры могут неправильно интерпретировать содержимое файлов и сайтов будет работать некорректно, а загруженные файлы могут быть неправильно обращались.

Самый простой тип MIME состоит из типа и подтипа ; эти каждая строка, которая при соединении с косой чертой (/) между ними, содержат тип MIME. В типе MIME нельзя использовать пробелы:

  тип / подтип  

Тип представляет собой общую категорию, в которую тип данных падает, например видео или текст подтип идентифицирует точный вид данных указанного type, который представляет тип MIME. Например, для MIME-типа текст , подтип может быть простой (простой текст), html (Исходный код HTML) или календарь (для iCalendar / .ics ) файлы.

Каждый тип имеет свой собственный набор возможных подтипов, а тип MIME всегда имеет оба типа. и подтип, а не только тот или иной.

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

  тип / подтип; параметр = значение  

Например, для любого типа MIME, основным типом которого является текст , необязательный charset Параметр может использоваться для указания набора символов, используемого для символы в данных.Если не указана кодировка , по умолчанию используется ASCII ( US-ASCII ), если это не отменено настройками пользовательского агента. Чтобы указать текстовый файл UTF-8, тип MIME text / plain; используется кодировка = UTF-8 .

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

Типы

Есть два класса типов: дискретный и составной .Дискретные типы — это типы, которые представляют один файл или носитель, такой как один текстовый или музыкальный файл или одно видео. Составной тип — это один который представляет собой документ, состоящий из нескольких составных частей, каждая из которых может иметь свой собственный индивидуальный тип MIME; или составной тип может инкапсулировать несколько файлы отправляются вместе в одной транзакции. Например, используются составные MIME-типы. при вложении нескольких файлов в электронное письмо.

Дискретные типы

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

приложение Список в IANA
Любые двоичные данные, которые явно не относятся ни к одному из других типов; либо данные, которые будут выполняться или интерпретироваться каким-либо образом, либо двоичные данные, которые требует использования определенного приложения или категории приложений.Общие двоичные данные (или двоичные данные, истинный тип которых неизвестен): application / octet-stream . Другие распространенные примеры включают приложение / pdf , application / pkcs8 и application / zip .
аудио Список в IANA
Аудио или музыкальные данные. Примеры включают аудио / MPEG , аудио / ворбис .
пример
Зарезервировано для использования в качестве заполнителя в примерах, показывающих, как использовать типы MIME.Эти никогда не следует использовать за пределами примеров кода и документации. , пример также можно использовать как подтип; например, в примере относящиеся к работе со звуком в Интернете, звук MIME типа / пример может использоваться, чтобы указать, что тип является заполнителем и должен быть заменен подходящий при использовании кода в реальном мире.
шрифт Список в IANA
Данные шрифта / гарнитуры. Общие примеры включают шрифт / woff , font / ttf и font / otf .
изображение Список в IANA
Изображение или графические данные, включая растровые и векторные неподвижные изображения, а также анимированные версии форматов неподвижных изображений, такие как анимированный GIF или APNG. Типичные примеры: image / jpeg , image / png и изображение / svg + xml .
модель Список в IANA
Данные модели для 3D-объекта или сцены. Примеры включают модель / 3mf и Модель / vml .
текст Список в IANA
Только текстовые данные, включая любое удобочитаемое содержимое, исходный код или текстовые данные например, данные в формате значений, разделенных запятыми (CSV). Примеры включают текст / простой , текст / csv и текст / html .
видео Список в IANA
Видеоданные или файлы, такие как фильмы MP4 (видео / mp4 ).

Для текстовых документов без определенного подтипа следует использовать text / plain .Точно так же для двоичных документов без определенного или известного подтипа application / octet-stream следует использовать.

Составные типы

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

За исключением multipart / form-data , используемых в метод HTML POST Forms и multipart / byteranges , используется с 206 Частичное содержимое для отправки части документа, HTTP не обрабатывает составные части документы особым образом: сообщение передается в браузер (который, скорее всего, показать окно «Сохранить как», если он не умеет отображать документ).

Есть два составных типа:

сообщение Список в IANA
Сообщение, которое инкапсулирует другие сообщения. Это может быть использовано, например, для представлять электронное письмо, которое включает переадресованное сообщение как часть его данных, или разрешить отправка очень больших сообщений кусками, как если бы это было несколько сообщений. Примеры включить сообщение / rfc822 (для цитирования пересылаемых сообщений или ответов на них) и сообщение / частичное , чтобы разрешить разбиение большого сообщения на более мелкие автоматически для повторной сборки получателем.
составной Список в IANA
Данные, состоящие из нескольких компонентов, которые могут по отдельности иметь разные Типы MIME. Примеры включают multipart / form-data (для данных, созданных с использованием FormData API) и multipart / byteranges (определено в RFC 7233: 5.4.1 и используется с HTTP 206 Ответ «Частичное содержимое» возвращается, когда полученные данные являются только частью содержимого, например, доставляется с использованием заголовка Range ).

application / octet-stream

Это значение по умолчанию для двоичных файлов. Так как это означает неизвестный двоичный файл , браузеры обычно не выполняют его и даже не спрашивают, нужно ли его выполнять. Они лечат это как если бы заголовок Content-Disposition был установлен на вложение и предложите диалоговое окно «Сохранить как».

text / plain

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

Обратите внимание, что text / plain не означает «какие-либо текстовые данные». Если они ожидая определенного типа текстовых данных, они, скорее всего, не сочтут это совпадением. В частности, если они загружают текстовый файл / простой из <ссылка> , объявляющий файл CSS, они не распознают его как действительный файл CSS, если он представлен с text / plain . Тип пантомимы CSS Необходимо использовать text / css .

text / css

CSS-файлы, используемые для стилизации веб-страницы , должны быть отправлены с текст / CSS .Если сервер не распознает суффикс .css для CSS-файлы, он может отправлять их с текстом / обычным или application / octet-stream MIME-типов. Если это так, они не будут распознаны как CSS. большинством браузеров и будет проигнорирован.

text / html

Все содержимое HTML должно обслуживаться с этим типом. Альтернативные типы MIME для XHTML (например, application / xhtml + xml ) в настоящее время в основном бесполезны.

Примечание: Используйте приложение / xml или application / xhtml + xml , если вам нужны строгие правила синтаксического анализа XML, разделы или элементы, не относящиеся к пространствам имен HTML / SVG / MathML.

text / javascript

Согласно спецификации HTML, файлы JavaScript всегда должны обслуживаться с использованием MIME введите текст / javascript . Никакие другие значения не считаются действительными, и использование любых из них может привести к тому, что скрипты не загружаются или не запускаются.

По историческим причинам функция MIME Sniffing Стандарт (определение того, как браузеры должны интерпретировать типы мультимедиа и что делать с контентом, у которого нет действительного) позволяет JavaScript быть обслуживается с использованием любого типа MIME, который по существу соответствует любому из следующего:

  • приложение / javascript
  • приложение / ecmascript
  • application / x-ecmascript Этот API не стандартизирован.
  • application / x-javascript Этот API не стандартизирован.
  • текст / JavaScript
  • текст / ecmascript
  • text / javascript1.0 Этот API не стандартизирован.
  • text / javascript1.1 Этот API не стандартизирован.
  • text / javascript1.2 Этот API не стандартизирован.
  • text / javascript1.3 Этот API не стандартизирован.
  • text / javascript1.4 Этот API не стандартизирован.
  • text / javascript1.5 Этот API не стандартизирован.
  • text / jscript Этот API не стандартизирован.
  • text / livescript Этот API не стандартизирован.
  • text / x-ecmascript Этот API не стандартизирован.
  • text / x-javascript Этот API не стандартизирован.

Примечание: Даже если любой пользовательский агент может поддерживать любой или все из них, вы должны использовать только text / javascript .Это единственный Тип MIME гарантированно будет работать сейчас и в будущем.

Некоторый контент, который вы найдете, может иметь параметр кодировки в конце text / javascript media type, чтобы указать набор символов, используемый для представления содержание кода. Это недопустимо, и в большинстве случаев сценарий не загружается.

Типы изображений

Файлы с типом MIME image содержат данные изображения. Подтип определяет какой конкретный формат файла изображения представляют данные.Используются только несколько типов изображений достаточно часто, чтобы считаться безопасным для использования на веб-страницах:

Аббревиатура Формат файла Тип MIME Расширение файла (а) Сводка
APNG Анимированная переносимая сетевая графика изображение / apng .apng Хороший выбор для последовательностей анимации без потерь (GIF менее эффективен).AVIF и WebP имеют лучшую производительность, но менее широкую поддержку браузера.
Поддерживается : Chrome, Edge, Firefox, Opera, Safari.
AVIF Формат файла изображения AV1 изображение / avif .avif

Хороший выбор как для изображений, так и для анимированных изображений благодаря высокой производительности и бесплатному формату изображений. Он предлагает гораздо лучшее сжатие, чем PNG или JPEG, с поддержкой более высокой глубины цвета, анимированных кадров, прозрачности и т. Д.Обратите внимание, что при использовании AVIF вы должны включать резервные варианты для форматов с лучшей поддержкой браузера (то есть с использованием элемента ).
Поддерживается: Chrome, Opera, Firefox (за предпочтениями).

GIF Формат обмена графикой изображение / gif .gif Хороший выбор для простых изображений и анимации. Предпочитайте PNG для индексированных неподвижных изображений без потерь и и рассмотрите WebP, AVIF или APNG для последовательностей анимации.
Поддерживается: Chrome, Edge, Firefox, IE, Opera, Safari.
JPEG Объединенная группа экспертов по фотографии image изображение / jpeg .jpg , .jpeg , .jfif , .pjpeg , .pjp

Хороший выбор для сжатия неподвижных изображений с потерями (в настоящее время наиболее популярно). Предпочитайте PNG, если требуется более точное воспроизведение изображения, или WebP / AVIF, если требуется как лучшее воспроизведение, так и более высокое сжатие.
Поддержка: Chrome, Edge, Firefox, IE, Opera, Safari.

PNG Переносимая сетевая графика изображения / png .png

PNG предпочтительнее JPEG для более точного воспроизведения исходных изображений или когда требуется прозрачность. WebP / AVIF обеспечивает еще лучшее сжатие и воспроизведение, но поддержка браузером более ограничена.
Поддержка: Chrome, Edge, Firefox, IE, Opera, Safari.

SVG Масштабируемая векторная графика изображение / svg + xml .svg Формат векторных изображений; идеально подходит для элементов пользовательского интерфейса, значков, диаграмм и т. д., которые должны быть аккуратно нарисованы в разных размерах.
Поддержка: Chrome, Edge, Firefox, IE, Opera, Safari.
WebP Формат веб-изображения изображение / webp .webp Отличный выбор как для изображений, так и для анимированных изображений. WebP предлагает гораздо лучшее сжатие, чем PNG или JPEG, с поддержкой более высокой глубины цвета, анимированных кадров, прозрачности и т. Д. AVIF предлагает немного лучшее сжатие, но не так хорошо поддерживается в браузерах и не поддерживает прогрессивную визуализацию.
Поддержка: Chrome, Edge, Firefox, Opera, Safari

Типы аудио и видео

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

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

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

Что касается типов MIME аудио или видео файлов, они обычно определяют формат контейнера (тип файла). Необязательный параметр кодеков может быть добавлен к типу MIME, чтобы дополнительно указать, какие кодеки использовать и какие параметры использовались для кодирования мультимедиа, например профиля кодека, уровня или другой подобной информации.

Наиболее часто используемые типы MIME, используемые для веб-содержимого, перечислены ниже. Это не однако полный список всех типов, которые могут быть доступны. См. Руководство по форматам медиа-контейнеров для тот.

Тип MIME Тип аудио или видео
аудио / волна
аудио / wav
аудио / x-wav
аудио / x-pn-wav
Аудиофайл в формате контейнера WAVE.Аудиокодек PCM (кодек WAVE «1») часто поддерживается, но другие кодеки имеют ограниченную поддержку (если есть).
аудио / webm Аудиофайл в формате контейнера WebM. Vorbis и Opus — это кодеки официально поддерживается спецификацией WebM.
видео / webm Видео файл, возможно со звуком, в формате контейнера WebM. VP8 и VP9 являются самые распространенные видеокодеки; Vorbis и Opus — самые распространенные аудиокодеки.
аудио / ogg Аудиофайл в формате контейнера Ogg. Vorbis — самый распространенный аудиокодек используется в таком контейнере; однако Opus теперь также поддерживается Ogg.
видео / ogg Видеофайл, возможно, со звуком, в формате контейнера Ogg. Теора — это в нем используется обычный видеокодек; Vorbis — обычный аудиокодек, хотя Opus становится все более распространенным.
приложение / ogg Аудио или видео файл, использующий формат контейнера Ogg. Теора это обычное видео кодек, используемый в нем; Vorbis — обычный аудиокодек.

multipart / form-data

Тип multipart / form-data может использоваться при отправке значений заполненная HTML-форма из браузера в сервер.

Как формат документа, состоящего из нескольких частей, он состоит из разных частей, разделенных границей. (строка, начинающаяся с двойного тире - ).Каждая часть представляет собой отдельную сущность с собственные заголовки HTTP, Content-Disposition и Content-Type для полей загрузки файлов.

  Content-Type: multipart / form-data; border = aBoundaryString
(другие заголовки, связанные с составным документом в целом)

--aBoundaryString
Content-Disposition: форма-данные; name = "myFile"; filename = "img.jpg"
Тип содержимого: изображение / JPEG

(данные)
--aBoundaryString
Content-Disposition: форма-данные; name = "myField"

(данные)
--aBoundaryString
(больше подразделов)
--aBoundaryString--

  

Следующие

:

  
  
  
  
  
  

отправит это сообщение:

 POST / HTTP / 1.1
Хост: localhost: 8000
Пользовательский агент: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10.9; rv: 50.0) Gecko / 20100101 Firefox / 50.0
Принять: text / html, application / xhtml + xml, application / xml; q = 0.9, * / *; q = 0.8
Accept-Language: en-US, en; q = 0,5
Принятие кодировки: gzip, deflate
Подключение: keep-alive
Небезопасные запросы на обновление: 1
Content-Type: multipart / form-data; граница = --------------------------- 87216560415653955004498
Длина содержимого: 465

----------------------------- 87216560415653955004498
Content-Disposition: форма-данные; name = "myTextField"

Контрольная работа
----------------------------- 87216560415653955004498
Content-Disposition: форма-данные; name = "myCheckBox"

на
----------------------------- 87216560415653955004498
Content-Disposition: форма-данные; name = "myFile"; filename = "test.текст"
Тип содержимого: текст / простой

Простой файл.
----------------------------- 87216560415653955004498--

 

multipart / byteranges

Тип MIME multipart / byteranges используется для отправки частичных ответов на браузер.

Когда отправляется код состояния 206 Частичное содержимое , это Тип MIME указывает, что документ состоит из нескольких частей, по одной для каждой из запрошенные диапазоны. Как и другие составные типы, Content-Type использует граница для разделения частей.Каждая часть имеет Content-Type заголовок с его фактическим типом и Content-Range диапазона, который он представляет.

  HTTP / 1.1 206 Частичное содержимое
Accept-Ranges: байты
Content-Type: multipart / byteranges; border = 3d6b6a416f9b5
Длина содержимого: 385

--3d6b6a416f9b5
Тип содержимого: текст / html
Content-Range: байты 100-200 / 1270

eta http-Equiv = "Content-type" content = "text / html; charset = utf-8" />
     

Большинство веб-серверов отправляют неопознанные ресурсы как application / octet-stream Тип MIME.По соображениям безопасности большинство браузеров делают не разрешать настраивать действие по умолчанию для таких ресурсов, заставляя пользователя сохранять его на диск, чтобы использовать его.

Некоторые распространенные неправильные конфигурации сервера:

  • RAR-сжатые файлы. В этом случае идеальным был бы истинный тип оригинальные файлы; это часто невозможно, поскольку файлы .RAR могут содержать несколько ресурсов Различные типы. В этом случае настройте сервер для отправки приложение / сжатие x-rar .

  • Аудио и видео. Только ресурсы с правильным типом MIME будут воспроизводиться в или элементов. Обязательно укажите правильный тип носителя для аудио и видео.

  • Собственные типы файлов. Избегайте использования application / octet-stream как большинство браузеры не позволяют определять поведение по умолчанию (например, «Открыть в Word») для этого общий тип MIME. Конкретный тип, например application / vnd.mspowerpoint позволяет пользователям автоматически открывать такие файлы в презентационном программном обеспечении их выбор.

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

Каждый браузер выполняет сниффинг MIME по-своему и при разных обстоятельствах. (За Например, Safari будет смотреть на расширение файла в URL-адресе, если отправленный тип MIME неподходящий.) Есть проблемы с безопасностью, поскольку некоторые типы MIME представляют исполняемый файл. содержание. Серверы могут предотвратить прослушивание MIME, отправив X-Content-Type-Options заголовок.

Типы MIME - не единственный способ передать информацию о типе документа:

  • Иногда используются суффиксы имени файла, особенно в Microsoft Windows. Не все операционные системы считают эти суффиксы значимыми (например, Linux и MacOS), и нет никакой гарантии, что они верны.
  • Магические числа.Синтаксис различных форматов позволяет делать выводы о типах файлов, просматривая по их байтовой структуре. Например, файлы GIF начинаются с символа 47 49 46 38 39 шестнадцатеричное значение ( GIF89 ) и файлы PNG с 89 50 4E 47 ( .PNG ). Не все типы файлов имеют магические числа, так что это тоже не на 100% надежно.

PNG Расширение файла - Что такое файл .png и как его открыть?

Файл PNG открыт в Microsoft Windows Фото

Формат PNG широко используется, особенно в Интернете, для сохранения изображений.Он поддерживает индексированные (на основе палитры) цветные изображения 24-битного RGB или 32-битного RGBA (RGB с четвертым альфа-каналом). Формат также поддерживает полноцветные неиндексированные изображения RGB или RGBA и изображения в градациях серого.

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

Как открыть файл PNG?

Вы можете открывать изображения PNG с помощью большого количества бесплатных и коммерческих программ, включая большинство редакторов изображений, видеоредакторов и веб-браузеров. Windows и macOS также поставляются в комплекте с программами, поддерживающими изображения PNG, такими как Microsoft Photos и Apple Preview.

Как преобразовать файл PNG?

Многие редакторы изображений, которые могут открывать файлы PNG, также могут конвертировать изображения в другие форматы. Если вы хотите использовать программу в комплекте с Windows, вы можете использовать Paint или Paint 3D.Если вы пользователь macOS, вы можете использовать Apple Preview. Все эти программы могут конвертировать изображения PNG в различные форматы, включая JPEG и TIFF.

Почему был создан формат PNG?

PNG был создан в 1995 году как бесплатная альтернатива формату GIF для передачи изображений в Интернете. Он улучшил ограничения формата GIF, который поддерживал ограниченное количество цветов и включал патентную лицензию. Кроме того, в то время как изображения GIF поддерживают только полностью непрозрачные или полностью прозрачные пиксели, изображения PNG могут включать 8-битный канал прозрачности, который позволяет цветам изображения переходить от непрозрачного к прозрачному.

Хотя формат PNG стал более широко использоваться, чем GIF, PNG является форматом одного изображения, тогда как GIF поддерживает несколько изображений. Формат GIF позволил пользователям сохранять простые анимации в виде файлов GIF и привел к возрождению формата в Интернете. В ответ на это ограничение группа разработчиков PNG создала в 2001 году формат сетевой графики с несколькими изображениями (.MNG), но не получил широкого распространения, как формат GIF.

ПРИМЕЧАНИЕ. Microsoft Windows может сохранять снимки экрана как файлы PNG вместе с Mac OS X (macOS) 10.4 и выше. Ubuntu Linux также хранит снимки экрана для печати в формате PNG.

PNG Спецификация: Обоснование

PNG Спецификация: Обоснование

REC-png.html

Рекомендация W3C 01 октября 1996 г.


Предыдущая страница
Следующая страница
Содержание
(Это приложение не является частью официальной спецификации PNG.)

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

12.1. Почему новый формат файла?

Действительно ли миру нужен еще один графический формат? Мы верим так. GIF больше не может использоваться свободно, но не в другом широко используемом формате может напрямую заменить его, что более подробно обсуждается ниже. Мы мог использовать адаптацию существующего формата, например GIF с непатентованной схемой сжатия.Но для этого потребуются новые код в любом случае; это было бы не намного проще реализовать, чем совершенно новый формат файла. (PNG предназначен для проста в реализации, за исключением сжатия двигатель, который понадобится в любом случае.) Мы чувствуем, что это отличная возможность разработать новый формат, который исправляет некоторые из известные ограничения GIF.

12.2. Почему эти особенности?

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

Мы также устранили некоторые широко известные недостатки GIF. В частности, PNG поддерживает полноцветные изображения. Мы не знаем широко использованный формат изображения, который без потерь сжимает полноцветные изображения как эффективно, как PNG. Мы надеемся, что PNG будет использовать Изображения truecolor более практичны и распространены.

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

Устойчивость к ошибкам передачи была важной рассмотрение. Например, изображения, передаваемые через Интернет, часто ошибочно обрабатывается как текст, что приводит к повреждению файла. PNG разработан таким образом, чтобы такие ошибки можно было быстро и надежно обнаруживать.

PNG был специально разработан, чтобы не полностью зависит от одной техники сжатия. Хотя сжатие deflate / inflate упоминается в этом документ, PNG все равно существовал бы без него.

12.3. Почему не эти функции?

Некоторые функции были намеренно исключены из PNG. Эти варианты были сделаны, чтобы упростить реализацию PNG, способствовать переносимости и взаимозаменяемость, и сделать формат таким же простым и надежным, как возможно для пользователей. В частности:
  • Несжатого варианта PNG не существует.Можно хранить несжатые данные с использованием только несжатых блоков deflate (функция обычно используется, чтобы гарантировать, что дефляция не сделает несжимаемую данных намного больше). Однако программное обеспечение PNG должно поддерживать полную сдуть / надуть; любое программное обеспечение, несовместимое с PNG стандарт. Две наиболее важные особенности PNG - переносимость и сжатие --- являются абсолютными требованиями для онлайн-приложений, и пользователи требуют их. Неспособность поддерживать компромиссы полного спуска / надувания обе эти цели.
  • В PNG нет сжатия с потерями. Существующие форматы, такие как JFIF уже хорошо справляется со сжатием с потерями. Кроме того, доступные с потерями методы сжатия (например, JPEG) далеко не надежны --- a неправильный выбор уровня качества может испортить изображение. Чтобы избежать пользователя путаница и непреднамеренная потеря информации, мы считаем, что лучше всего строго разделяйте форматы с потерями и без потерь. Кроме того, сжатие с потерями сложно реализовать. Добавление поддержки JPEG в декодер PNG может увеличить его размер на порядок.Это бы безусловно, заставляет некоторые декодеры не поддерживать эту функцию, что разрушит нашу цель взаимозаменяемости.
  • Нет поддержки CMYK или других необычных цветовых пространств. Опять же, это делается во имя повышения мобильности. CMYK, дюйм в частности, слишком зависит от устройства, чтобы быть полезным в качестве портативного представление изображения.
  • Стандартного блока для просмотра миниатюр изображений не существует. В обсуждения с поставщиками программного обеспечения, которые используют эскизы в своих продуктов, стало ясно, что большинство из них не будет использовать «стандартные» фрагмент эскиза.Во-первых, у каждого поставщика своя идея. каковы должны быть размеры и характеристики эскиза быть. Также некоторые производители хранят эскизы в отдельных файлах. для размещения различных форматов изображений; они не перестанут это делать просто из-за фрагмента эскиза в одном новом формате. Проприетарный фрагменты, содержащие эскизы конкретных поставщиков, кажутся более практичнее, чем обычный формат эскизов.
Стоит отметить, что частные расширения к PNG можно легко добавить эти особенности.Однако мы не будем включать их в базовый стандарт PNG.

PNG также не поддерживает несколько изображений в одном файле. Это ограничение отражает тот факт, что многие приложения не нужны и не будут поддерживать несколько изображений в файле. В любом случае отдельные изображения - это принципиально иной вид объекта от последовательностей изображений. Вместо того, чтобы давать ложные обещания взаимозаменяемость, мы провели четкое различие между форматы с одним и несколькими изображениями. PNG - это формат с одним изображением.(Но см. Расширение с несколькими изображениями.)

12,4. Почему бы не использовать формат X?

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

GIF больше не подходит в качестве универсального стандарта из-за юридических запутывания. Хотя простая замена метода сжатия GIF могла бы Избегайте этой проблемы, GIF не поддерживает полноцветные изображения, альфа каналов или гамма-коррекции. В спецификации есть и более тонкие проблемы.Только небольшая часть спецификации GIF89 действительно переносима через множество реализаций, но нет кодификации наиболее переносная часть спец.

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

IFF также предлагался, но не подходит в деталях: имеется представления изображений слишком специфичны для машины или неадекватны сжатый. Общая чанковая структура IFF - полезная концепция. этот PNG широко заимствован, но мы не пытались побитовая совместимость с структурой фрагментов IFF. Опять же, это связано с подробные вопросы, особенно тот факт, что ФОРМЫ IFF не предназначены для иметь возможность последовательной записи.

JPEG без потерь не подходит, так как не обеспечивает хранение изображений с индексированными цветами.Кроме того, его истинный цвет без потерь сжатие часто уступает сжатию PNG.

12,5. Порядок байтов

Был задан вопрос, почему PNG использует сетевой порядок байтов. Мы выбрали порядок байтов и использовали его последовательно. В каком именно порядке мало актуально, но сетевой порядок байтов имеет то преимущество, что процедуры преобразования туда и обратно уже доступны на любом платформа, поддерживающая сеть TCP / IP, включая все платформы ПК. Функции тривиальны и будут включены в эталонной реализации.

12,6. Переплетение

Двумерная схема чересстрочной развертки PNG более сложна реализовать, чем построчный чересстрочный формат GIF. Это также стоит немного больше в размере файла. Однако это дает исходное изображение в восемь раз быстрее, чем GIF (первый проход передает только 1/64 пикселей по сравнению с 1/8 для GIF). Хотя это исходное изображение грубое, оно полезно во многих ситуациях. Например, если изображение представляет собой карту изображений в Интернете, пользователь видел раньше, первого прохода PNG часто бывает достаточно, чтобы определить куда щелкнуть.Схема PNG также выглядит лучше, чем GIF, потому что разрешение по горизонтали и вертикали никогда не отличается более чем в один раз из двух; это позволяет избежать странного "растянутого" вида, наблюдаемого при чересстрочной развертке GIF-файлы заполняются репликацией строк развертки. Предварительные результаты показать, что мелкий текст в чересстрочном изображении PNG обычно читается примерно в два раза быстрее, чем в эквивалентном GIF, т. е. после Пятый проход PNG или 25% данных изображения, а не после GIF третий проход или 50%. Это снова связано с более сбалансированным увеличением PNG в разрешении.

12,7. Почему гамма?

Может показаться естественным стандартизовать хранение выборочных значений, которые линейно пропорциональна интенсивности света (то есть имеет гамму 1,0). Но на самом деле, как правило, изображения имеют гамму меньше 1. Для этого есть три веские причины:
  • По причинам, подробно описанным в Руководстве по гамме, все видеокамеры применяют функцию «гамма-коррекции» к интенсивности Информация. Это приводит к тому, что видеосигнал имеет гамму около 0,5 относительно интенсивности света в исходной сцене.Таким образом, изображения, полученные с помощью видео с захватом кадров, уже имеют гамму около 0,5.
  • Человеческий глаз имеет нелинейный отклик на интенсивность, поэтому линейное кодирование образцов либо отбрасывает коды образцов в светлых областях изображение или предоставляет слишком мало примеров кодов, чтобы избежать артефактов полос в темных областях изображения или и то, и другое. Не менее 12 бит на образец необходимы, чтобы избежать видимых артефактов при линейном кодировании с диапазоном яркости изображения 100: 1. Гамма изображения в диапазоне от 0,3 до 0,5 выделяет значения выборки примерно соответствует реакции глаза, так что 8 бит / отсчет достаточно, чтобы избежать артефактов, вызванных недостаточным точность сэмплов почти на всех изображениях.Это делает "гамма-кодирование" гораздо лучшим способом хранение цифровых изображений по сравнению с более простым линейным кодированием.
  • Многие изображения создаются на ПК или рабочих станциях без гаммы. аппаратные средства коррекции и никакое программное обеспечение, обеспечивающее гамму исправление тоже. В этих случаях изображения были освещение и цвет, выбранные так, чтобы лучше всего смотреться на этой платформе --- они можно рассматривать как встроенную "ручную" гамма-коррекцию. Чтобы узнать, что задумал автор изображения, такие изображения следует рассматривать как имеющие file_gamma значение в диапазоне 0.4-0,6, в зависимости от освещения помещения уровень, на котором работал автор.

На практике значения гаммы изображения около 1,0 и около 0,5 являются одинаковыми. широко распространен. Старые стандарты изображений, такие как GIF, часто не учитываются за этот факт. Стандарт JFIF определяет, что изображения в этом формате следует использовать линейные образцы, но многие изображения JFIF, найденные в Интернете на самом деле гамма где-то около 0,4 или 0,5. В разнообразие найденных изображений и разнообразие систем, которые люди отображают они привели к широко распространенным проблемам с появлением изображений «слишком темный» или «слишком светлый».

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

  • Гамма-коррекция по своей природе связана с потерями из-за ошибки квантования и округления. Таким образом, требование преобразования во время кодирования вызывает необратимые потеря. Поскольку PNG задуман как формат хранения без потерь, это нежелательно; мы должны хранить неизмененные исходные данные.
  • Кодировщик может не знать значение гаммы источника. Если декодер делает гамма-коррекцию во время просмотра, может регулировать гамму (изменить отображаемую яркость) в ответ на обратную связь от человек-пользователь. У кодировщика такого выхода нет.
  • Какая бы "стандартная" гамма мы ни выбрали, она не подходит для некоторые дисплеи. Следовательно, зрителям все равно потребуется гамма-коррекция. возможности.
Так как всегда будут изображения без гаммы или с неправильным записанная гамма, хорошие зрители должны будут включить гамму код настройки в любом случае.Гамма-коррекция во время просмотра, таким образом, правильный путь.

См. Gamma Tutorial для получения дополнительной информации.

12,8. Альфа без предварительного умножения

PNG использует "несвязанный" или "без предварительного умножения" альфа, так что изображения с отдельными масками прозрачности могут быть сохранены без потерь. Другой распространенный метод, "предварительно умноженная альфа", сохраняет значения пикселей. предварительно умноженный на альфа-фракцию; по сути, изображение уже на черном фоне. Любые данные изображения, скрытые маска прозрачности безвозвратно теряется этим методом, так как умножение на нулевое значение альфа всегда дает ноль.

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

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

12.9. Фильтрация

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

Алгоритмы фильтрации определены для работы с байтами, а не с пиксели; это обеспечивает простоту и скорость при очень небольших затратах в производительность сжатия.Тесты показали, что фильтрация обычно неэффективен для изображений с менее чем 8 битами на выборку, поэтому предоставление пиксельной фильтрации для таких изображений было бы бессмысленным. Для данных с 16 битами на выборку побайтная фильтрация почти так же эффективна, как пиксельная фильтрация, поскольку MSB предсказываются из соседних MSB, и LSB предсказываются из соседних LSB.

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

12.10. Текстовые строки

Большинство форматов графических файлов включают возможность хранения некоторых текстовых файлов. информация вместе с изображением. Но многим приложениям нужно больше чем это: они хотят иметь возможность хранить несколько идентифицируемых частей текста. Например, база данных, использующая файлы PNG для хранения медицинских На рентгеновских снимках, скорее всего, нужно будет указать имя пациента, имя врача, и т. д. Простым способом сделать это в PNG было бы изобрести новые частные фрагменты, содержащие текст. Недостаток такого подхода в том, что другие приложения не знают, что было в этих куски и просто проигнорирует их.Вместо этого мы рекомендуем текстовый информация хранится в стандартных текстовых блоках с подходящими ключевые слова. Использование tEXt сообщает любому зрителю PNG, что фрагмент содержит текст, который может быть интересен пользователю. Таким образом, человек глядя на файл с помощью другого средства просмотра, вы все равно сможете увидеть текст, и даже понять, что это, если ключевые слова разумно не требует пояснений. (С этой целью мы рекомендуем использовать подробные ключевые слова, не аббревиатуры, которые человеку будет трудно понять. Экономия нескольких байтов на ключевом слове - ложная экономия.)

Набор символов ISO 8859-1 (Latin-1) был выбран в качестве компромисса. между функциональностью и портативностью. Некоторые платформы не могут отображать что-либо более 7-битных символов ASCII, в то время как другие может обрабатывать символы за пределами набора Latin-1. Мы чувствовали, что Latin-1 представляет собой широко полезный и достаточно переносимый набор символов. Latin-1 - это прямое подмножество наборов символов, обычно используемых в популярные платформы, такие как Microsoft Windows и X Windows. Оно может также можно обрабатывать в системах Macintosh с простым переназначением символы.

В настоящее время нет положений о тексте, использующем символы. наборы кроме Latin-1. Мы осознайте, что потребность в других наборах символов возрастет. Однако PNG уже требует, чтобы программисты реализовали количество новых и незнакомых функций и текстовое представление не является основной целью PNG. Поскольку PNG предусматривает создание и публичная регистрация новых дополнительных частей, представляющих общий интерес, мы ожидаем, что фрагменты текста для других наборов символов, например как Unicode, со временем будет регистрироваться и постепенно увеличиваться популярность.

12.11. Подпись файла PNG

Первые восемь байтов файла PNG всегда содержат следующие значения:
   (десятичный) 137 80 78 71 13 10 26 10
   (шестнадцатеричный) 89 50 4e 47 0d 0a 1a 0a
   (Обозначение ASCII C) \ 211 P N G \ r \ n \ 032 \ n
 

Эта подпись идентифицирует файл как файл PNG и обеспечивает немедленное обнаружение типичных проблем с передачей файлов. Первые два байта различают файлы PNG в системах, которые ожидают первые два байта для однозначной идентификации типа файла.Первый байт выбрано в качестве значения, отличного от ASCII, чтобы уменьшить вероятность того, что текстовый файл может быть неправильно распознан как файл PNG; также ловит плохой файл передает этот очищающий бит 7. Байты со второго по четвертый называют формат. Последовательность CR-LF улавливает плохие передачи файлов, которые изменяют новую строку последовательности. Символ control-Z останавливает отображение файла в MS-DOS. Последний перевод строки проверяет инверсию перевода CR-LF проблема.

Декодер может дополнительно проверить, что следующие восемь байтов содержат Заголовок фрагмента IHDR с правильной длиной фрагмента; это будет ловить плохие передачи, которые сбрасывают или изменяют нулевые (нулевые) байты.

Обратите внимание, что в подписи нет номера версии, да и вообще в любом месте файла. Это сделано намеренно: механизм фрагментов обеспечивает лучший и более гибкий способ обработки расширений формата, так как объяснено в Соглашения об именах чанков. 31) -1 байтов позволяет избежать возможных проблем для реализации, которые не могут удобно обрабатывать 4-байтовые беззнаковые значения.На практике куски обычно в любом случае будут намного короче.

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

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

12,13. Соглашение об именах блоков

Соглашения об именах блоков позволяют безопасно и гибко расширять PNG. формат. Этот механизм намного лучше, чем номер версии формата, потому что он работает на индивидуальной основе, а не общий показатель.Декодеры могут обрабатывать новые файлы тогда и только тогда, когда в файлах нет неизвестных критических функций (на что указывает поиск неизвестные критические блоки). Неизвестные вспомогательные блоки можно безопасно игнорируется. Мы решили не указывать общий номер версии формата потому что опыт показал, что номера версий формата вредят переносимость настолько, насколько они помогают. Номера версий обычно устанавливаются неоправданно высокий, что приводит к тому, что старые декодеры отклоняют файлы, они могли обработать (это было серьезной проблемой для нескольких лет спустя после выхода спецификации GIF89, например).Более того, частные расширения могут быть критическими или вспомогательными, и стандартные декодеры должны реагировать соответствующим образом; общие номера версий не помогают частным расширениям.

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

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

При изменении файла PNG могут потребоваться некоторые вспомогательные фрагменты. изменено, чтобы отразить изменения в других чанках. Например, гистограмма чанк необходимо изменить, если изменяются данные изображения. Если редактор файлов не распознает фрагменты гистограммы, слепо копируя их на новый выходной файл неверен; такие куски следует отбрасывать. В бит безопасного / небезопасного свойства позволяет помечать вспомогательные блоки соответственно.

Не все возможные сценарии модификации охватываются безопасным / небезопасным семантика.В частности, фрагменты, которые зависят от всего файла содержимое не поддерживается. (Примером такого чанка является индекс расположения фрагментов IDAT в файле: добавление комментария chunk может случайно нарушить индекс.) обескуражен. Если это абсолютно необходимо для конкретного приложения, такие фрагменты можно превратить в критические с последующей потерей переносимость в другие приложения. Как правило, вспомогательные блоки могут зависят от критических фрагментов, но не от других вспомогательных фрагментов.это ожидается, что взаимозависимая информация должна быть помещена в один кусок.

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

Этот же прием может быть полезен для других целей.Например, если программа полагается на то, что палитра находится в определенном порядке, она может сохранить частный блок, содержащий CRC блока PLTE. Если это значение совпадает при повторном чтении файла, то оно обеспечивает высокая уверенность в том, что палитра не была изменена. Запись что нет необходимости отмечать частный блок как небезопасный для копирования когда используется этот прием; таким образом, такой частный кусок может выжить другое редактирование файла.

12,14. Палитра гистограмм

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

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


Предыдущая страница
Следующая страница
Содержание

PNG против TIFF - формат, который не повредит отсканированные фотографии

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

Для тех, кто заинтересован в сохранении изображений высочайшего качества, выделяются два наиболее популярных формата - PNG и TIFF. Но какой из них лучше всего подходит для архивирования отсканированных фотографий?

Процесс принятия решения кажется немного сложным, потому что и PNG, и TIFF не только создают высококачественные изображения, сохраняют с прозрачностью и сохраняют с 16 битами на канал, но и оба сохраняют исходное качество изображения даже если они были отредактированы и повторно сохранены снова и снова.

Но выбор станет немного яснее, если мы сравним характеристики, которые фактически разделяют их.

PNG

Portable Network Graphic ● Произносится PEE-en-JEE ● Расширение: .png

  • Создан в 1996 году рабочей группой PNG как улучшенная замена файла GIF
  • Формат был разработан для передачи изображений в Интернете
  • Уменьшенные размеры файлов без потери качества изображения (с использованием сжатия без потерь)
  • Может содержать только полноцветный RGB или RGBA без палитры (с альфа-каналом)
  • «Веб-дружественная» поддержка для отображения в Интернете веб-браузерами
  • Limited (не стандартизовано) поддержка хранения метаданные с XMP (если поддерживается приложением)

TIFF

Формат файла изображения с тегами ● Произносится как TIF как «Тиффани» ● Расширение: .tif или .tiff

  • Создан в 1986 г. корпорацией Aldus. (позже приобретенная Adobe Systems в 1994 г.) для использования в настольных издательских системах
  • Формат был разработан как попытка заставить поставщиков настольных сканеров согласовать общий формат файла отсканированного изображения для нескольких компьютерные платформы
  • Файлы обычно хранятся без сжатия , но также доступна опция уменьшения размера файла (с использованием сжатия без потерь [ZIP или LZW] и иногда даже сжатия с потерями , если поддерживается application)
  • Может хранить «слои» в пределах (полезно в приложениях для редактирования высокого класса, таких как Adobe Photoshop)
  • Может содержать всех цветов , глубины цвета и цветовых групп (e.г. RGB, а также CMYK, LAB и т. Д.)
  • Полная встроенная поддержка для хранения стандартизированных полей метаданных EXIF ​​и IPTC внутри файла (например, «дата съемки» и «подписи»)
  • Может хранить несколько изображений, например, страницы отсканированного или отправленного по факсу документа (аналогично файлу PDF)

Убедитесь, что формат PNG или TIFF - правильный выбор для вас

Я думаю, что важно подчеркнуть, насколько важно знать, является ли PNG или TIFF правильным выбором для вас.Возможно, вас заставили поверить, что это были два ваших лучших варианта, и именно поэтому вы пришли к этому посту.

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

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

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

Ниже приводится специальный видеоролик, который представляет собой раздел, взятый из одного из моих уроков под названием « Цифровые мастера и типы файлов» в моем обучающем видео-курсе по сканированию и организации фотографий.До сих пор вам нужно было быть участником, но в течение ограниченного времени я также делаю эту часть доступной для просмотра.

Думайте об этом как о мини-уроке по изучению лучших типов файлов для сканирования ваших коллекций фотографий!

Основные причины, по которым я до сих пор не рекомендую формат файла PNG поверх TIFF для архивации ваших отсканированных коллекций фотографий

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

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

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

1

Существуют форматы, предназначенные для сканирования

Формат файла TIFF был создан в середине 1980-х годов для использования в настольных издательских системах, а затем был разработан, чтобы стать стандартным форматом для сохранения отсканированных фотографий и существует уже более трех десятилетий.

И файл PNG буквально говорит нам в своем названии, что он не был разработан для такой цели. PNG - это сокращение от Portable Network Graphic - ключевое слово здесь «переносимый». И это имеет смысл, потому что файлы, предназначенные для передачи по Интернету, должны быть максимально портативными, особенно на таких устройствах, как смартфоны и планшеты, пытающиеся получить доступ к сотовым сетям в районах с плохим обслуживанием.

Но когда я думаю о сохранении и архивировании моей коллекции отсканированных фотографий, меня вообще не волнует переносимость.Архивирование - это не движение. Честно говоря, все наоборот. Я думаю о «долголетии», «совместимости» и «без компромиссов».

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

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

2

Отсутствие поддержки программного обеспечения сканера

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

Если формат PNG был действительно сильным претендентом на сохранение отсканированных изображений, разве это не странно - поразительно, невероятно странно - что после всех этих лет он все еще не был добавлен в список варианты типов файлов на выбор в основных программах сканирования?

Это не вариант выбора.Его там нет.

Разве производители сканеров и разработчики программного обеспечения для сканирования не хотели бы, чтобы у вас был простой доступ к сохранению в этом формате, который должен был использоваться для сохранения отсканированных документов?

Параметры формата файла в популярном приложении для сканирования «Epson Scan», которое бесплатно поставляется со всеми планшетными сканерами Epson (версия 3.9.4 - «Профессиональный» режим)

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

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

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

Параметры форматов файлов в популярном и автономном программном обеспечении для сканирования VueScan Pro (v. 9.6.47- «Профессиональный» режим )

При преобразовании важно помнить о том, что сначала необходимо сохранить отсканированные изображения из программного обеспечения для сканирования в формате без потерь (а не в формате с потерями , таком как формат JPEG ) . Таким образом, вы не потеряете никаких деталей изображения перед повторным сохранением их в другом приложении в формате без потерь PNG (в попытке сохранить то, что уже было потеряно).И чаще всего, если вы не используете высокопроизводительное приложение для сканирования, которое дает вам возможность выбора файла RAW, единственный формат без потерь, который можно выбрать в большинстве программ для сканирования, - это TIFF .

3

Внедрение нестандартных метаданных

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

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

Как работают метаданные фотографий

Лучший способ сделать это - использовать приложение, которое позволит вам щелкнуть эти поля метаданных и вручную добавить или изменить эту описательную информацию.Уже много лет эти данные хранятся внутри файла с использованием одного из двух стандартизованных наборов полей «метаданных» с именами EXIF ​​ и IPTC (в форматах файлов RAW метаданные иногда хранятся в сопроводительных файлах).

В простейшем объяснении EXIF ​​ (формат файла сменного изображения ) содержит информацию о камере, такую ​​как модель камеры, дата съемки, тип объектива, использовавшаяся насадка для вспышки и т. Д.А IPTC (Международный совет по прессе и телекоммуникациям) хранит информацию, которая помогает проинформировать, что изображено на фотографии, кто сделал снимок и кто теперь за ним смотрит.

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

Спецификация PNG не включает стандарт для встраивания данных изображения EXIF ​​из таких источников, как цифровые камеры.Вместо этого PNG имеет различные специальные вспомогательные блоки для хранения метаданных , которые другие форматы файлов (например, JPEG) обычно хранят в формате EXIF.

Текущая поддержка метаданных PNG

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

Однако с течением времени объем «ограниченной» поддержки рос. И я говорю «ограниченный», потому что в настоящее время мне трудно количественно точно определить, сколько поддержки действительно существует в масштабах отрасли (со всем программным обеспечением для обработки фотографий) с нестандартной реализацией метаданных PNG.

Насколько я понимаю, вместо того, чтобы записывать метаданные в стандартных методах внутри ваших файлов, как это делают другие форматы файлов, когда ваши метаданные записываются в файл PNG, они сохраняются в этих уникальных «вспомогательных» фрагментах внутри файла.

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

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

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

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

Реализация Adobe XMP

Adobe прилагает все усилия для поддержки своей платформы расширяемых метаданных (XMP), которая представляет собой технологию маркировки файлов, которая позволяет встраивать метаданные в файлы.Приложения, поддерживающие XMP, также, очевидно, могут сделать возможным обмен метаданными из файлов с метаданными в стандартизированных наборах тегов EXIF ​​и IPTC.

Это означает, что если вы используете приложения, написанные Adobe (Adobe Bridge, Adobe Lightroom Classic и т. Д.), Вы, вероятно, найдете надежный рабочий процесс при работе с метаданными PNG. Кроме того, вы, вероятно, добьетесь успеха с другими фото-приложениями, которые активно пытаются быть как можно более полезными для своих клиентов, также применяя XMP или даже любые другие реализации метаданных, которые стали популярными.

Если вы продвигаетесь вперед с сохранением отсканированных фотографий в формате PNG и хотите использовать поля ввода метаданных EXIF ​​и IPTC, которые можно найти в лучших (неразрушающих) менеджерах фотографий, просто примите это как строгое предупреждение, что PNG открывают здесь новые горизонты.

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

4

Неожиданная экономия размера файла

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

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

«Сравнение JPEG»

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

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

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

Я объяснил, чем отличается сжатие JPEG, и о недостатках, о которых вам нужно знать, в видео выше. Итак, теперь вы в основном знаете, как это работает.

Теперь возьмем для примера эту фотографию из моей коллекции семейных фотографий.Я сохранил его и заархивировал как несжатый файл TIFF , и он занимает 25,5 мегабайт (МБ) места на моем накопителе.

Если я конвертирую этот файл в переносимый формат JPEG с высокой степенью сжатия, даже если для параметра сжатия установлено скромное качество 80% (из 100%), проверьте, насколько маленький размер файла удалось уменьшить до:

Изображение TIFF JPG Экономия на хранении
25.5 Мб был уменьшен до менее чем 1 мегабайт (МБ) места для хранения файлов - на 96,5% меньше! - но при этом поддерживает достаточно высокий уровень качества изображения, чтобы его можно было передавать по электронной почте или в социальных сетях и наслаждаться.

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

Как работает «сжатие» размера файла PNG

Формат PNG отличается от формата JPEG тем, что он пытается точно воспроизвести оригинал.Вместо этого он использует «сжатие без потерь», что означает, что ваши изображения будут сохранены без «удаления каких-либо данных (деталей) вашей фотографии».

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

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