Чим відрізняється зображення “JPG” / “JPEG” / “PNG” / “BMP” / “GIF” / “TIFF”?


102

Я бачив багато типів розширень зображень, але ніколи не розумів реальних відмінностей між ними. Чи є там якісь посилання, які чітко пояснюють їхні відмінності?

Чи є стандарти, які слід враховувати при виборі певного типу зображення для використання в додатку? Що ми використовуємо для веб-додатків?


Хтось із кращим представником, ніж я, повинен пройти ці відповіді та закріпити їх.
Дана Робінсон

Ось ваша відповідь: stackoverflow.com/questions/2336522/…
Чак Ле Бутт

Це запитання закрите і може бути видалено. Ця ж відповідь наведена нижче, і її слід прийняти відповіддю ІМО.
токсалот

Відповіді:


91

Так. Вони є різними форматами файлів (та їх розширеннями файлів).

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

  • JPEG (або JPG, для розширення файлу; Об'єднана група фотографічних експертів)
  • PNG (портативна мережева графіка)
  • BMP (Bitmap)
  • GIF ( формат графічної обміну)
  • TIFF (або TIF, для розширення файлу; формат файлу тегів зображень)

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

  • стиснення втрат,
  • стиснення без втрат,
  • нестиснений,

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

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

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

TIFF і BMP - це формати "обгортки", оскільки дані всередині можуть залежати від використовуваної технології стиснення. Він може містити як стислі, так і нестиснуті зображення.

Коли використовувати певний формат стиснення зображення, дійсно залежить від того, що стискається.

Питання, пов'язані з цим: Безжально стискати великі зображення для Інтернету


Я не думаю, що BMP - це формат "обгортки" таким чином, яким є TIFF (або PDF - це ампер), або що його можна стиснути (я маю на увазі, ви можете скопіювати його, але він не містить стислих даних ).
ChrisW

2
@ChrisW: BMP дозволяє стискати вміст файлу. Щойно я переглянув сторінку, на яку я посилався, і підтримує RLE, PNG та JPEG. (Я не знав, що він підтримує вміст PNG та JPEG - дізнався щось нове!)
coobird

2
BMP зазвичай страждає від тієї ж проблеми, що і WAV, вони обидва ніколи не стандартизовані, і як такі зловживають майже для всього, що можна придумати.
Джаспер Беккерс

3
@PhilWhittington Ви плутаєте об'єкт растрової карти з форматом файлу. Клас растрових зображень зберігає у багатьох різних форматах, включаючи BMP, TIFF та PNG - але він зберігає від об'єкта растрових зображень (тобто даних із необроблених пікселів). У файлі BMP немає такого поняття, як PNG.
Чак Ле Бут

1
@Monk msdn.microsoft.com/en-us/library/windows/desktop/… та шукайте "biCompression". Ця структура С зберігається байт-за-байтом у файлі BMP, тому BMP-файли також можуть підтримувати ці типи стиснення. Тільки тому, що їх ніхто не використовує, не означає, що вони недійсні.
користувач253751

78

Ви повинні знати про кілька ключових факторів ...

По-перше, є два типи стиснення: без втрат та втрати .

Без втрат означає, що зображення робиться меншим, але без шкоди для якості. Втрата означає, що зображення робиться (навіть) меншим, але на шкоду якості. Якщо ви зберігали зображення у форматі Lossy знову і знову, якість зображення буде прогресивно погіршуватися та погіршуватися.

Існують також різні глибини кольору (палітри): індексований колір та прямий колір .

Що стосується індексованого, це означає, що зображення може зберігати лише обмежену кількість кольорів (як правило, 256), які обирає автор зображення, а Direct - це означає, що ви можете зберігати багато тисяч кольорів, які не вибрав автор.


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

Це старий формат. Це без втрат (при збереженні не втрачаються дані зображення), але також зовсім мало стиснення, що означає збереження, оскільки BMP призводить до ДУЖЕ великих розмірів файлів. Він може мати палітри як індексованих, так і прямих, але це невелика розрада. Розміри файлів настільки зайві, що ніхто ніколи не використовує цей формат.

Добре для: насправді нічого. Немає нічого, що BMP перевершує або не покращує інші формати.

BMP проти GIF


GIF - лише без втрат / індексується

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

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

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

GIF та JPEG


JPEG - втрата / прямий

Зображення JPEG були розроблені для того, щоб зробити детальні фотографічні зображення якомога меншими, видаляючи інформацію, яку людське око не помітить. Як результат, це формат Lossy, а збереження одного і того ж файлу знову і знову призведе до втрати більшої кількості даних з часом. Він має палітру тисяч кольорів і тому чудово підходить для фотографій, але стиснення втрат означає, що це погано для логотипів та малюнків ліній: Вони не тільки виглядатимуть нечітко, але й такі зображення матимуть більший розмір файлу порівняно з GIF!

Добре для: Фотографії. Також градієнти.

JPEG проти GIF


PNG-8 - без втрат / індексується

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

Добре для: Головне, що PNG-8 робить краще, ніж GIF - це підтримка прозорості Alpha.

PNG-8 проти GIF

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


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 Єдине, чого не вистачає, щоб зробити це повноцінною відповіддю на питання ОП, це згадка про JPG (загальне розширення файлу для JPEG) та розділ для TIFF.
токсалот

2
Я також зазначу, що стиснення PNG робить його добрим у ситуаціях, яких ви можете не очікувати. Наприклад, градієнти дуже стисливі при PNG.
Генрі Мерріам

27

Як правило, це або:

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

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

Кожен формат відрізняється, як описано нижче:

Файли JPEG JPEG (Об'єднана група фотографічних експертів) мають (у більшості випадків) формат втрати; розширення назви файлів DOS - JPG (інші ОС можуть використовувати JPEG). Майже кожен цифровий фотоапарат може зберігати зображення у форматі JPEG, який підтримує 8 біт на колір (червоний, зелений, синій) для загальної кількості 24 біт, створюючи відносно невеликі файли. Якщо не надто велика, стиснення не помітно погіршує якість зображення, але JPEG-файли зазнають деградації поколінь при повторному редагуванні та збереженні. Фотознімки можуть бути краще збережені у форматі без JPEG без втрат, якщо вони будуть відредаговані або якщо невеликі «артефакти» (вади, викликані алгоритмом стиснення JPEG) неприйнятні. Формат JPEG також використовується як алгоритм стиснення зображень у багатьох файлах Adobe PDF.

TIFF (Формат файлу зображень з тегами) - це гнучкий формат, який, як правило, зберігає 8 біт або 16 біт на колір (червоний, зелений, синій) для 24-розрядних та 48-бітових підсумків відповідно, використовуючи або імена файлів TIFF, або TIF. . Гнучкість TIFF є і благом, і прокляттям, оскільки жоден зчитувач не читає кожного типу файлів TIFF. TIFF - збиткові та без втрат; деякі пропонують порівняно гарне стиснення без втрат для дворівневих (чорно-білих) зображень. Деякі цифрові камери можуть зберігати у форматі 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 (Graphics Interchange Format) обмежений 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 дозволяє створювати дуже якісну графіку та анімацію, які не втрачають деталей, оскільки їх розмір збільшується / зменшується.


    1

    Ці імена стосуються різних способів кодування даних зображень пікселів (JPG та JPEG - це одне і те ж, і TIFF може просто додавати jpeg з деякими додатковими метаданими).

    Ці формати зображень можуть використовувати різні алгоритми стиснення, різні кольорові зображення, різні можливості перенесення додаткових даних, крім самого зображення, тощо.

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


    1

    Що сказав кобурд і Джеральд.

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

    На даний момент веб-браузери відображають лише файли JPEG, PNG та GIF - тож це ті, які можна відображати на веб-сторінках.


    Підтримка браузера не обмежується JPEG, PNG та GIF: формати, такі як BMP, ICO, SVG та XBM - серед інших - підтримуються в багатьох браузерах.
    скронід

    Досить чесно, я мав би сказати, що JPEG, GIF та PNG - це формати, які підтримуються більшістю браузерів.
    Gnudiff

    1

    PNG підтримує прозорість алфавільних каналів.

    TIFF може мати розширені варіанти Ie Geo-посилання для GIS- додатків.

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

    Фаворит PNG


    1

    Названі - всі растрові графіки, але, крім того, не забувайте про все більш важливу векторну графіку. Існують стислі та нестиснені типи (більш-менш), але всі вони без втрат. Найважливіші:


    0

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

    Веб в основному надає переваги gif, jpg та png. JPEG - це те саме (або дуже близьке) до jpg.


    0

    Про вказану різницю та використання між різними форматами зображень уже добре обговорюємось.

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

    Процес захоплення

    Або ви можете сказати процес побудови (як ми можемо малювати або робити фотографії з комп’ютерами зараз). Якщо ви фотографуєте фотоапарат, ви вже використовуєте безліч датчиків (CCD або CMOS) та алгоритмів (Bayer Pattern Filter, суб-вибірки та квантування тощо). Також є такі речі, як Pixel FormatіColor Space . Після отримання основної інформації про пікселі, повинен бути спосіб їх зберігання.

    Основна структура файлу зображень

    Для зберігання інформації про пікселі у файлі нам потрібна конвенція та відповідні алгоритми. Для економії місця є стиснення, але в основному проблема полягає в кодуванні пікселів до байтів і декодування байтів до пікселів для відображення.

    Типовий файл зображення може складатися з декількох частин, в основному з двох: meta data or file headerі pixel data section. Themeta dataРозповідає про самому, може бути , зображення heightі width, file formatі т.д. І pixel data sectionце реальна , sectionхто займається з real picture.

    Зберігання та відображення

    Як ми говорили раніше, файли зберігаються на жорсткому диску і знаходяться в байтах / бітах. Таким чином, файли зображень не мають пріоритету, але насправді також і потоки байтів. Для відображення, можливо, нам слід щось дізнатися, як працює монітор. У типових моніторах ПК для відображення використовується модель RGB.

    Сподіваюся, це допомагає :-)

    Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
    Licensed under cc by-sa 3.0 with attribution required.