В чем разница между изображениями "JPG" / "JPEG" / "PNG" / "BMP" / "GIF" / "TIFF"? - PullRequest
97 голосов
/ 07 января 2009

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

Существуют ли стандарты, которые следует учитывать при выборе определенного типа изображения для использования в приложении? Что мы используем для веб-приложений?

Ответы [ 11 ]

85 голосов
/ 07 января 2009

Да. Это разные форматы файлов (и их расширения).

Записи в Википедии для каждого из форматов предоставят вам немного информации:

  • JPEG (или JPG, для расширения файла; Объединенная группа экспертов по фотографии)
  • PNG (Портативная сетевая графика)
  • BMP (Растровое изображение)
  • GIF (формат обмена графиками)
  • TIFF (или TIF, для расширения файла; формат файла изображения с тегами)

Форматы изображений можно разделить на три широкие категории:

  • сжатие с потерями,
  • сжатие без потерь,
  • несжатом

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

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

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

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

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

Смежный вопрос: Беспощадно сжимая большие изображения для Интернета

73 голосов
/ 02 мая 2013

Вы должны знать о нескольких ключевых факторах ...

Во-первых, существует два типа сжатия: Lossless и Lossy .

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

Существуют также различные глубины цвета (палитры): Индексированный цвет и Прямой цвет .

С Indexed это означает, что изображение может хранить только ограниченное количество цветов (обычно 256), выбранных автором изображения, с Direct это означает, что вы можете сохранить тысячи цветов, которые не были выбраны автором.


BMP - без потерь / индексированный и прямой

Это старый формат. Это без потерь (никакие данные изображения не теряются при сохранении), но также практически отсутствует сжатие, что означает сохранение, поскольку BMP приводит к ОЧЕНЬ большим размерам файлов. Он может иметь палитры Indexed и Direct, но это небольшое утешение. Размеры файлов настолько неоправданно велики, что никто никогда не использует этот формат.

Хорошо для: Ничего особенного. У BMP нет ничего превосходного или лучше других форматов.

BMP vs GIF


GIF - без потерь / только индексированный

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

GIF-изображения также могут быть анимированными и иметь прозрачность.

Хорошо для: логотипы, линейные рисунки и другие простые изображения, которые должны быть маленькими. Действительно используется только для веб-сайтов.

GIF vs JPEG


JPEG - с потерями / прямой

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

Хорошо для: Фотографии. Также градиенты.

JPEG vs GIF


PNG-8 - без потерь / индексированный

PNG - более новый формат, а PNG-8 (индексированная версия PNG) действительно является хорошей заменой GIF-файлам. К сожалению, однако, у него есть несколько недостатков: во-первых, он не может поддерживать анимацию, как GIF (может, но может, но только Firefox поддерживает ее, в отличие от GIF-анимации, поддерживаемой каждым браузером). Во-вторых, у него есть проблемы с поддержкой старых браузеров, таких как IE6. В-третьих, важные программы, такие как Photoshop, имеют очень плохую реализацию формата. (Черт возьми, Adobe!) PNG-8 может хранить только 256 цветов, например GIF.

Хорошо: главное, что PNG-8 работает лучше, чем GIF, - это поддержка альфа-прозрачности.

PNG-8 vs GIF

Важное примечание: Photoshop не поддерживает альфа-прозрачность для файлов PNG-8. (Черт возьми, Photoshop!) Однако есть способы конвертировать Photoshop PNG-24 в файлы PNG-8, сохраняя при этом их прозрачность. Один из способов - PNGQuant , другой - сохранить файлы с помощью Fireworks .

.

PNG-24 - без потерь / прямой

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

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

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

Надеюсь, это поможет!

27 голосов
/ 07 января 2009

Обычно это либо:

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

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

Каждый формат отличается от описанного ниже:

JPEG Файлы JPEG (Joint Photographic Experts Group) (в большинстве случаев) имеют формат с потерями; расширение имени файла DOS - JPG (другие ОС могут использовать JPEG). Почти каждая цифровая камера может сохранять изображения в формате JPEG, который поддерживает 8 бит на цвет (красный, зеленый, синий) для 24-битного общего количества, создавая относительно небольшие файлы. Если сжатие не слишком велико, это заметно не ухудшает качество изображения, но файлы JPEG страдают от ухудшения поколений при многократном редактировании и сохранении. Фотографические изображения могут лучше храниться в формате без потерь в формате JPEG, если они будут отредактированы или если небольшие «артефакты» (дефекты, вызванные алгоритмом сжатия JPEG) неприемлемы. Формат JPEG также используется в качестве алгоритма сжатия изображений во многих файлах Adobe PDF.

TIFF TIFF (Tagged Image File Format) - это гибкий формат, который обычно сохраняет 8 или 16 бит на цвет (красный, зеленый, синий) для 24-битных и 48-битных итогов, соответственно, используя имена файлов TIFF или TIF. Гибкость TIFF - это и благословение, и проклятие, потому что ни один читатель не читает каждый тип файла TIFF. TIFFs с потерями и без потерь; некоторые предлагают относительно хорошее сжатие без потерь для двухуровневых (черно-белых) изображений. Некоторые цифровые камеры могут сохранять в формате TIFF, используя алгоритм сжатия LZW для хранения без потерь. Формат изображения TIFF широко не поддерживается веб-браузерами. TIFF остается широко распространенным стандартом в сфере печати фотографий. TIFF может работать с цветовыми пространствами, специфичными для устройства, такими как CMYK, определяемый конкретным набором чернил для печатной машины.

PNG Формат файла PNG (Portable Network Graphics) был создан как бесплатный преемник GIF с открытым исходным кодом. Формат файла PNG поддерживает truecolor (16 миллионов цветов), а GIF поддерживает только 256 цветов. Файл PNG превосходен, когда изображение имеет большие однородные цветные области. Формат PNG без потерь лучше всего подходит для редактирования изображений, а форматы с потерями, такие как JPG, лучше всего подходят для окончательного распространения фотографических изображений, поскольку файлы JPG меньше файлов PNG. Многие старые браузеры в настоящее время не поддерживают формат файлов PNG, однако в Internet Explorer 7 все современные веб-браузеры полностью поддерживают формат PNG. Чересстрочная развертка Adam7 обеспечивает ранний предварительный просмотр, даже если передан только небольшой процент данных изображения.

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

BMP Формат файла BMP (растровое изображение Windows) обрабатывает графические файлы в ОС Microsoft Windows. Как правило, файлы BMP являются несжатыми, следовательно, они большие; Преимущество - их простота, широкое признание и использование в программах Windows.

Используется для веб-страниц / веб-приложений

Ниже приведена краткая сводка по этим форматам изображений при использовании их с веб-страницей / приложением.

PNG отлично подходит для IE6 и выше (потребуется небольшой патч CSS, чтобы прозрачность работала хорошо). Отлично подходит для иллюстраций и фотографий. JPG отлично подходит для фотографий онлайн GIF хорош для иллюстраций, когда вы не хотите переходить на PNG BMP не должен использоваться онлайн на веб-страницах - трата трафика

Источник: Форматы файлов изображений

5 голосов
/ 07 января 2009

Поскольку другие уже рассмотрели различия, я воспользуюсь использованием.

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

BMP распаковывается и создает огромные файлы. Он также не используется в приложениях.

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

JPG / JPEG в основном используется для всего, что с качеством фотографии, но не для текста. Используемое сжатие с потерями имеет тенденцию портить четкие линии.

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

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

2 голосов
/ 19 февраля 2014

JPG> Объединенная группа экспертов по фотографии

1 Изображения JPG поддерживают 16 миллионов цветов и лучше всего подходят для фотографий и сложной графики

2 JPG не поддерживают прозрачность.

PNG> Портативная сетевая графика

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

2 PNG обеспечивают на 5-25 процентов большее сжатие, чем GIF, и с более широким диапазоном цветов. PNG используют двухмерное чередование, что позволяет им загружаться в два раза быстрее, чем изображения GIF. ”

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

GIF> Формат обмена графиками

1 Уменьшает количество цветов в изображении до 256.

2 GIF также поддерживают прозрачность.

3 GIF имеют уникальную возможность отображать последовательность изображений, аналогичную видео, называемую анимированным GIF.

4 Если изображение имеет несколько цветов и не требует какого-либо расширенного эффекта альфа-прозрачности, лучше использовать GIF.

SVG> Масштабируемая векторная графика

1 SVG - это веб-стандарт, основанный на XML, который описывает статические изображения и анимацию в двух измерениях.

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

1 голос
/ 15 января 2009

Именованные являются растровой графикой, но кроме этого не забывайте все более важную векторную графику. Существуют сжатые и несжатые типы (более или менее), но все они без потерь. Наиболее важными являются:

1 голос
/ 15 января 2009

PNG поддерживает прозрачность альфа-канала.

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

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

Favor PNG.

1 голос
/ 07 января 2009

Что сказали Коберд и Джеральд.

Кроме того, JPEG - это имя формата файла. JPG обычно использует сокращенное расширение файла для этого формата, так как для более ранних систем Windows вам нужно было иметь трехбуквенное расширение файла. Аналогично с TIFF и TIF.

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

1 голос
/ 07 января 2009

Эти имена относятся к различным способам кодирования данных изображения в пикселях (JPG и JPEG - это одно и то же, а TIFF может просто включать JPEG с некоторыми дополнительными метаданными).

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

Я бы сказал, что для веб-приложений достаточно jpeg или gif. Jpeg используется чаще из-за более высокой степени сжатия, а gif обычно используется для легкой анимации, где вспышка (или что-то подобное) является чрезмерным уничтожением или местами, где требуется прозрачный фон. PNG тоже можно использовать, но у меня мало опыта с этим. BMP и TIFF, вероятно, не являются хорошими кандидатами для веб-приложений.

0 голосов
/ 23 декабря 2013

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

Однако я хочу добавить кое-что для общего процесса захвата изображения и его сохранения.

Процесс захвата

Или вы можете сказать, что процесс конструирования (как мы можем рисовать или делать рисунки с помощью компьютеров сейчас). Если вы делаете снимок с помощью камеры, вы уже используете множество датчиков (CCD или CMOS) и алгоритмы (Байеровский фильтр, субсэмплинг и квантование и т. Д.). Также есть такие вещи, как Pixel Format и Color Space. После того, как вы получили основную информацию о пикселях, должен быть способ их хранения.

Базовая структура файла изображения

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

Типичный файл изображения может состоять из нескольких частей, в основном двух: meta data or file header и pixel data section. meta data говорит о самом изображении, может быть height и width, file format и т. Д. А pixel data section - это реальный section, который имеет дело с real picture.

Хранение и отображение

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

Надеюсь, это поможет: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...