JPEG против PNG против BMP против GIF против SVG


40

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


15
Кстати, JPG и JPEG оба ссылаются на одно и то же (см., Например, en.wikipedia.org/wiki/JPEG ), поэтому заголовок можно немного упростить.
Джоник

1
Не знаете, как мой ответ не отвечает на ваш первоначальный вопрос, и как ваш выбранный ответ делает ...? : - /
Джанго Рейнхардт

4
> какой из этих форматов требует меньше памяти Um, определите «меньше памяти». Вы имеете в виду, что он занимает меньше места на диске? (JPEG для фотографий, PNG и / или GIF для скриншотов.) Вы имеете в виду, что сжатый файл занимает меньше места в памяти? (То же самое, что и на диске.) Вы имеете в виду, что декодированное изображение занимает меньше места в памяти ( Нет ; по сути, все они одинаковы при декодировании в raw.)
Synetech

Ответы:


54

В чем разница между TIFF, GIF, JPG, JPEG, PNG и файлом BMP?

BMP - Растровое изображение. Это был, вероятно, первый тип цифрового формата изображения, который я помню. Каждая картинка на компьютере в те дни казалась BMP. В Windows XP программа Paint сохраняет свои изображения автоматически в BMP. Однако в Windows Vista и более поздних версиях изображения теперь сохраняются в формате JPEG. BMP является базовой платформой для многих других типов файлов.

JPG / JPEG - (Объединенная группа экспертов по фотографии) Формат Jpeg используется для цветных фотографий или любых изображений с множеством смешанных или градиентных изображений. Это не хорошо с острыми краями и имеет тенденцию размыть их немного, если не хранить в высоком качестве. Этот формат стал популярным с изобретением цифровой камеры. Большинство, если не все, цифровые камеры загружают фотографии на компьютер в виде файла JPEG. Очевидно, что производители цифровых камер видят ценность в высококачественных изображениях, которые в конечном итоге занимают меньше места.

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

PNG - (Portable Networks Graphic) Этот формат без потерь является одним из лучших графических форматов. Он не всегда был совместим со всеми веб-браузерами или графическими программами, но в настоящее время это лучший формат изображений для веб-сайта. Я использую .png для логотипов и скриншотов. Одна из его самых удивительных способностей - это возможность сжимать изображения без потерь (без потери пикселей), хотя окончательный сжатый размер варьируется в зависимости от редактора изображений.

TIFF - (формат файла изображения с тегами) Этот формат файла не обновлялся с 1992 года и в настоящее время принадлежит Adobe. Он может хранить изображение и данные (теги) в одном файле. TIFF может быть сжат, но именно его способность хранить данные изображения в формате без потерь делает файл TIFF полезным архивом изображений, поскольку в отличие от стандартных файлов JPEG, файл TIFF, использующий сжатие без потерь (или ни один), можно редактировать и повторно -сохраняется без потери качества изображения. Этот файл обычно используется для сканирования, отправки факсов, обработки текста и так далее. Это больше не распространенный формат файлов для использования с вашими цифровыми фотографиями, так как jpeg отличного качества и занимает меньше места.


1
Имейте в виду, что без «взлома» своего рода IE6 по-прежнему не поддерживает альфа-прозрачность в файлах PNG, то есть полупрозрачные области прозрачности
Джош Комли

2
... и удивительное количество людей все еще используют IE6 ( tinyurl.com/56kp ). И MS хочет поддержать его до 2014 года! :( ( tinyurl.com/qvdyn5 )
Джош Комли

9
BMP: это не основа для других форматов файлов. Насколько я знаю, заголовок BMP и структура файла не используются совместно с другими форматами (в отличие от TIFF, например). JPEG: он был создан и существовал в Интернете до того, как стали популярными цифровые камеры. Также многие цифровые камеры позволяют сохранять «сырой» формат, который обычно представляет собой TIFF, хотя и с содержимым, специфичным для поставщика. GIF: не ограничено 256 цветами на изображение, только 256 цветами на кадр (см. En.wikipedia.org/wiki/Graphics_Interchange_Format#True_color ).
Джои

4
TIFF: распространенный формат файлов и контейнеров для необработанных изображений с цифровых камер (не наведи и снимай). TIFF допускает почти произвольные данные (следовательно, помеченные ) в нем, что также означает, что он поддерживает произвольные методы сжатия от LZW (GIF), LZ77 (PNG) до JPEG и других. Также TIFF позволяет использовать несколько изображений (страниц) в одном файле.
Джои

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

76

В стиле xkcd от lbrandy.com :

альтернативный текст


4
Прекрасно иллюстрирует эту мысль :) (даже если я никогда не видел, чтобы кто-то защищал такую ​​политику «Всегда JPEG!»)
Jonik,

7
+1 Так как эта картинка хорошо иллюстрирует проблему jpeg ...
Йохан,

5
Я хотел бы удвоить голос! Я посылаю это всем, кто отправляет мне дерьмовые JPEG!
Тим Бют

3
© 2008 Луи Бренди. Все права защищены....?
Арджан

3
Например, у Facebook есть политика «Всегда JPEG». Я загружаю хорошее PNG-изображение без потерь размером 99 КБ, и Facebook преобразует его в уродливый JPEG-файл размером 175 КБ.
Пол

63

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

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

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

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

  • Индексированный означает, что изображение может хранить только ограниченное количество цветов (обычно 256), контролируемых автором, в так называемой Цветовой карте
  • Прямой означает, что вы можете хранить тысячи цветов, которые не были выбраны автором напрямую.

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

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

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

БМП против GIF


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

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

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

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

GIF против JPEG


JPEG - Lossy / Direct

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


SVG - Lossless / Vector

Тип файла, который в настоящее время становится все более популярным, это SVG, который отличается от всего вышеперечисленного тем, что это векторный формат файла (все вышеупомянутые растровые ). Это означает, что он на самом деле состоит из линий и кривых, а не пикселей. Когда вы увеличиваете векторное изображение, вы все равно видите кривую или линию. При увеличении растрового изображения вы увидите пиксели.

Например:

PNG против SVG

SVG против PNG

Это означает, что SVG идеально подходит для логотипов и иконок, которые вы хотите сохранить четкость на экранах Retina или разных размеров.

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

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


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

1
Вы ошибаетесь в том, что PNG не поддерживает анимацию. PNG может делать это нормально, большинство зрителей и браузеров не поддерживают это. en.wikipedia.org/wiki/APNG Firefox поддерживает это довольно хорошо, кажется. people.mozilla.com/~dolske/apng/demo.html
Роб

1
@DjangoReinhardt Я знаю, что вы включили пример в свой ответ, но что касается SVG против PNG, при каких обстоятельствах мы можем увидеть больший SVG (в размере файла) по сравнению с PNG?
Ханна

1
@ Йоханнес Отличный вопрос. У SVG есть некоторые недостатки, особенно если они особенно сложны (или плохо сохранены - но это вина автора, а не формат файла). Я попытаюсь добавить что-то, что ответит на это - хотя я подозреваю, что SVG всегда будет меньше (или равен по размеру) PNG.
Джанго Рейнхардт

1
Еще один забавный факт: файлы BMP имеют размер, аналогичный PNG, если вы их застегнули.
Jiggunjer

28

Существующие ответы содержат очень мало технических данных, поэтому я включу их здесь.

  • JPEG : до 24-битного цвета (возможно, больше?), Переменное (обычно высокое) сжатие, с потерями, без альфа-поддержки
  • PNG : до 48-битного цвета, умеренное сжатие, без потерь, поддержка альфа
  • BMP : до 24-битного цвета, очень небольшое сжатие, без потерь, поддержка альфа
  • GIF : до 8-битного цвета, небольшое сжатие, без потерь, поддержка прозрачности, поддержка анимации

Глубина цвета

  • 8-битный цвет == 256 цветов
  • 24-битный цвет == 16,777,216 цветов
  • 48-битный цвет == 281 474 976 710 656 цветов

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

компрессия

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

Альфа / Прозрачность

Альфа относится к прозрачности, но подразумевает, что существует более одного уровня прозрачности. GIF имеет возможность определять прозрачные пиксели, но он либо непрозрачный, либо прозрачный на 100%, а «прозрачный» используется в качестве одного из 256 цветов. PNG и BMP имеют возможность пометить каждый пиксель как непрозрачный, прозрачный или частично прозрачный, как кусок цветного стекла. Чаще всего существует 256 уровней прозрачности, хотя PNG может иметь до 65 536 уровней. JPEG не поддерживает прозрачность.

Анимация

По сути, из этих форматов только GIF поддерживает анимацию. Существуют спецификации для анимации с PNG (MNG, APNG) и JPEG (MJPEG), но они широко не поддерживаются. (APNG работает в последних версиях Firefox и Opera.) На практике большинство анимаций, которые вы видите на веб-страницах, реализованы во Flash.


APNG получает большую поддержку.
Фоши

Конечно же Я не заметил
wfaulk

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

Отличная обработка мысли ..
InfantPro'Aravind '17

25
  • Используйте GIF, если изображение имеет несколько цветов (например, значки). Может также использоваться для анимированных изображений (например, рекламных баннеров).
  • Используйте JPG, если изображение имеет много цветов (например, фотографии). JPEG это то же самое.
  • Используйте BMP, если вы хотите сохранить изображение без сжатия. Гораздо больший размер файла!
  • Используйте PNG, если вы хотите опубликовать изображение в Интернете и быть в курсе современных стандартов. Плюсы: подходит в качестве современной замены для GIF и JPG, является открытым стандартом и обеспечивает прозрачность. Минусы: Не поддерживается старым программным обеспечением, и размер файла может быть больше, чем сопоставимый GIF или JPG.

3
+1 за практические соображения, когда использовать каждый.
Эндрю Колсон

4
Будьте осторожны с использованием PNG. Как формат без потерь, они обычно не подходят для фотографий и т.п. из-за размера файла. Определенно не "современная замена" для всех целей. Транскодирование из JPG в PNG было бы действительно глупо.
Пол Макмиллан

@Paul - я согласен, это, безусловно, не полезно для всех целей и, в частности, не для фотографий, но при использовании для веб-графики он заменяет JPG.
Торбен Гундтофте-Брюн

2
Я не думаю, что в настоящее время когда-либо нужна BPM.
Арджан

1
PNG почти всегда меньше, чем GIF. Имеет превосходную схему сжатия. Когда он больше, чем тот же GIF, это обычно ошибка программного обеспечения (например, Photoshop до CS2). Используйте PNG с палитрой (не 24-бит!) И исправьте их с помощью оптимизатора PNG: imageoptim.pornel.net, и вам больше никогда не захочется тратить пропускную способность на GIF-файлы.
Корнель

13

введите описание изображения здесь


BMP:

  • Старый формат Без потери данных.
  • Не сжато - хранит значение каждого пикселя. Следовательно, изображения одинакового размера имеют одинаковый размер файла (килобайт / мегабайт). Например, изображения BMP 800 × 600 всегда имеют размер 1,37 МБ, как и обои WinXP «Блаженство».
  • Прозрачность / прозрачность не поддерживается
  • Не рекомендуется ни для чего

JPG:

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

PNG:

  • Сжатие без потерь (да, лучшее из обоих слов / миров)
  • Поддерживает прозрачность и прозрачность, оба разные
  • Рекомендуется для статической графики / иконок, а не для фотографий

GIF:

  • Поддерживает прозрачность, но не прозрачность
  • Рекомендуется только для анимированной графики / иконок
  • Возможно, движущиеся фотографии в кадрах в «Гарри Поттере» - это GIF: D

1
Хороший обзор. Но почему BMP помечен как «без потерь: ложь» в таблице? В тексте вы ИМХО правильно говорите, что BMP действительно без потерь .
mpy

2
Я знаю, что это старая ветка, и спасибо за ответ, но учтите, что BMP может быть сжат с очень упрощенным сжатием RLE без потерь.
ysap

Любая другая причина, почему PNG НЕ рекомендуется для фотографий, кроме его большего размера файла по сравнению с JPEG? Сначала я отсканировал свои старые фотографии в формате JPEG, а затем повторно отсканировал их в формате PNG, осознав, что сканировал фотографию, которая будет сохранена в формате с потерями.
JAT86

4

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


Мне нравится PCX. Когда я решил изучить ассемблер, для моей первой программы я написал программу просмотра PCX. Это было довольно познавательно. (Я не писал просмотрщик JPG). :-D
Synetech

3

Простой гид:

  • Для фотографий используйте:
    • Необработанные форматы для камеры, если у вас есть профессиональное оборудование и вы хотите много постобработать
    • JPEG в противном случае (для публикации фотографий в Интернете вам также необходимо преобразовать необработанные форматы в JPEG)
  • Для чего-либо с острыми краями, тонкими линиями и небольшим количеством цветов (таких как скриншоты или логотипы) используйте:
    • GIF, если вы делаете веб-страницу, которая должна поддерживать очень старые браузеры (в основном IE 6), или если вы хотите делать простые анимации
    • PNG иначе
  • Нет веских причин использовать BMP, если только определенная программа не принимает другие форматы.

1
IE поддерживает PNG начиная с некоторой версии 4.x (5 для Mac), но только не прозрачный PNG.
Арджан

1
IE6 даже поддерживает прозрачный PNG, если он имеет GIF-подобную прозрачность. Только PNG с полной альфа не поддерживается.
Корнель

1
На самом деле поддерживается альфа-прозрачность при условии, что это 8-битный PNG. Странно, но правда.
Джанго Рейнхардт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.