В чем разница между изображением «JPG» / «JPEG» / «PNG» / «BMP» / «GIF» / «TIFF»?

103

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

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

МОЗИЛЛА
источник
Кто-то с лучшей репутацией, чем я, должен пройти эти ответы и закрепить их.
Дана Робинсон,
Вот ваш ответ: stackoverflow.com/questions/2336522/…
Чак Ле Батт
Этот вопрос закрыт и может быть удален. Тот же ответ ниже и должен быть принят ответом ИМО.
toxalot 01

Ответы:

91

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

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

  • JPEG (или JPG, для расширения файла; Joint Photographic Experts Group)
  • PNG (переносимая сетевая графика)
  • BMP (растровое изображение)
  • GIF (формат обмена графикой)
  • TIFF (или TIF, для расширения файла; Tagged Image File Format)

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

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

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

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

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

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

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

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

Coobird
источник
Я не думаю, что BMP - это формат-оболочка в том смысле, в котором TIFF (или PDF для этого amtter), или что он может быть сжат (я имею в виду, вы можете его заархивировать, но он не содержит сжатых данных ).
ChrisW, 07
2
@ChrisW: BMP позволяет сжимать содержимое файла. Я только что взглянул на страницу Википедии, на которую я ссылался, и она поддерживает RLE, PNG и JPEG. (Я не знал, что он поддерживает контент PNG и JPEG - узнал кое-что новое!)
coobird
2
BMP обычно страдает той же проблемой, что и WAV, они никогда не стандартизированы и поэтому ими злоупотребляют почти все, что вы можете придумать.
Джаспер Беккерс
3
@PhilWhittington Вы путаете объект растрового изображения с форматом файла. Класс Bitmap сохраняет во многих различных форматах, включая BMP, TIFF и PNG, но сохраняет из растрового объекта (то есть необработанных данных пикселей). Внутри BMP-файла нет такой вещи, как PNG.
Чак Ле Батт
1
@Monk msdn.microsoft.com/en-us/library/windows/desktop/… и выполните поиск по запросу «biCompression». Эта структура C сохраняется побайтно в файле BMP, поэтому файлы BMP также могут поддерживать эти типы сжатия. То, что их никто не использует, не означает, что они недействительны.
user253751 05
78

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

Во-первых, есть два типа сжатия: без потерь и с потерями .

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

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

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


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

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

Подходит для: Ничего особенного. В BMP нет ничего лучше, чем другие форматы.

BMP против GIF


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

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

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

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

GIF против JPEG


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

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

Подходит для: фотографий. А также градиенты.

JPEG против GIF


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

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

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

PNG-8 против 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 поддерживает альфа-прозрачность.

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

Чак Ле Батт
источник
8
+1 Единственное, чего не хватает, чтобы сделать это полным ответом на вопрос OP, - это упоминание JPG (общее расширение файла для JPEG) и раздел для TIFF.
toxalot 01
2
Я также упомяну, что сжатие PNG позволяет использовать его в неожиданных ситуациях. Например, градиенты легко сжимаются с помощью PNG.
Генри Мерриам
27

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

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

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

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

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. TIFF с потерями и без потерь; некоторые предлагают относительно хорошее сжатие без потерь для двухуровневых (черно-белых) изображений. Некоторые цифровые камеры могут сохранять в формате TIFF, используя алгоритм сжатия LZW для хранения без потерь. Формат изображения TIFF не поддерживается широко веб-браузерами. TIFF остается широко принятым стандартом файлов фотографий в полиграфическом бизнесе. TIFF может обрабатывать специфичные для устройства цветовые пространства, такие как CMYK, определенные определенным набором красок для печатной машины.

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

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

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

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

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

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


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

    Люк
    источник
    5

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

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

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

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

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

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

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

    Дана Робинсон
    источник
    BMP может быть сжат RLE ... Это немного, но эффективно для простых изображений. Это также проприетарный формат (Microsoft).
    PhiLho
    4
    Срок действия патента GIF истек в 2004 году.
    Dour High Arch
    1
    TIFF очень популярен среди людей, которым нужно качество без потерь (художники). Также он отлично подходит для сжатия монохромных изображений, поэтому это один из самых популярных форматов для программного обеспечения для сканирования цифровых факсов / документов.
    Vilx-
    1
    В последней спецификации BMP также позволяет сжимать содержимое в формате PNG или JPEG.
    Vilx-
    2

    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 позволяет создавать очень качественную графику и анимацию, не теряющую деталей при увеличении / уменьшении их размера.

    Dev
    источник
    1

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

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

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

    PolyThinker
    источник
    1

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

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

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

    Gnudiff
    источник
    Поддержка браузером не ограничивается JPEG, PNG и GIF: такие форматы, как BMP, ICO, SVG и XBM, среди прочих, изначально поддерживаются во многих браузерах.
    scronide
    Честно говоря, я должен был сказать, что JPEG, GIF и PNG - это форматы, которые поддерживаются большинством браузеров.
    Gnudiff 07
    1

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

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

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

    Польза PNG.

    Роджер Нельсон
    источник
    1

    Все названные - это растровая графика, но кроме этого не забывайте о все более и более важной векторной графике. Есть сжатые и несжатые типы (более или менее), но все они без потерь. Наиболее важные из них:

    Xn0vv3r
    источник
    0

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

    В Интернете в основном отдают предпочтение форматам gif, jpg и png. JPEG совпадает (или очень близок) к jpg.

    gbarry
    источник
    0

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

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

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

    Или вы можете сказать «процесс конструирования» (поскольку теперь мы можем рисовать или делать картинки с помощью компьютеров). Если вы делаете снимок с помощью камеры, вы уже используете множество датчиков (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.

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

    Лихан Ли
    источник