Jaka jest różnica między „JPG” / „JPEG” / „PNG” / „BMP” / „GIF” / „TIFF”?


102

Widziałem wiele typów rozszerzeń graficznych, ale nigdy nie zrozumiałem prawdziwych różnic między nimi. Czy są tam jakieś linki, które jasno wyjaśniają ich różnice?

Czy istnieją standardy, które należy wziąć pod uwagę przy wyborze określonego typu obrazu do wykorzystania w aplikacji? Czego używamy w aplikacjach internetowych?


Ktoś, kto ma lepszego przedstawiciela niż ja, powinien przejrzeć te odpowiedzi i je skonsolidować.
Dana Robinson


To pytanie jest zamknięte i może zostać usunięte. Ta sama odpowiedź jest poniżej i powinna zostać zaakceptowana odpowiedź IMO.
Toxalot

Odpowiedzi:


91

Tak. Są to różne formaty plików (i ich rozszerzenia).

Wpisy Wikipedii dla każdego z formatów dadzą ci sporo informacji:

  • JPEG (lub JPG, dla rozszerzenia pliku; Joint Photographic Experts Group)
  • PNG (przenośna grafika sieciowa)
  • BMP (mapa bitowa)
  • GIF (format wymiany grafiki)
  • TIFF (lub TIF jako rozszerzenie pliku; Tagged Image File Format)

Formaty obrazów można podzielić na trzy szerokie kategorie:

  • Kompresja stratna,
  • bezstratna kompresja,
  • nieskompresowany,

Nieskompresowane formaty zajmują najwięcej danych, ale stanowią dokładną reprezentację obrazu. Formaty bitmapowe, takie jak BMP, są generalnie nieskompresowane, chociaż istnieją również skompresowane pliki BMP.

Formaty kompresji stratnej są na ogół odpowiednie dla fotografii. Nie nadaje się do ilustracji, rysunków i tekstu, ponieważ artefakty kompresji powstałe w wyniku kompresji obrazu będą się wyróżniać. Kompresja stratna, jak sama nazwa wskazuje, nie koduje wszystkich informacji zawartych w pliku, więc po odzyskaniu go do obrazu nie będzie dokładną reprezentacją oryginału. Jest jednak w stanie bardzo skutecznie kompresować obrazy w porównaniu z formatami bezstratnymi, ponieważ odrzuca pewne informacje. Doskonałym przykładem stratnego formatu kompresji jest JPEG.

Formaty kompresji bezstratnej nadają się do ilustracji, rysunków, tekstu i innych materiałów, które nie wyglądałyby dobrze po skompresowaniu przy użyciu kompresji stratnej. Jak sama nazwa wskazuje, kompresja bezstratna zakoduje wszystkie informacje z oryginału, więc po zdekompresowaniu obrazu będzie to dokładna reprezentacja oryginału. Ponieważ kompresja bezstratna nie powoduje utraty informacji, w większości przypadków nie jest w stanie osiągnąć tak wysokiego stopnia kompresji, jak kompresja stratna. Przykładami bezstratnej kompresji obrazu są PNG i GIF. (GIF dopuszcza tylko obrazy 8-bitowe).

TIFF i BMP to formaty „opakowujące”, ponieważ dane w nich zawarte mogą zależeć od zastosowanej techniki kompresji. Może zawierać obrazy skompresowane i nieskompresowane.

Kiedy użyć określonego formatu kompresji obrazu, naprawdę zależy od tego, co jest kompresowane.

Powiązane pytanie: Bezlitosna kompresja dużych obrazów na potrzeby Internetu


Nie sądzę, że BMP jest formatem „opakowującym” w taki sposób, jak TIFF (lub PDF jest do tego celu), ani że można go skompresować (mam na myśli, że można go spakować, ale nie zawiera skompresowanych danych ).
ChrisW,

2
@ChrisW: BMP umożliwia kompresję zawartości pliku. Właśnie spojrzałem na stronę Wikipedii, do której się odwołałem, i obsługuje ona RLE, PNG i JPEG. (Nie wiedziałem, że obsługuje zawartość PNG i JPEG - nauczyłem się czegoś nowego!)
coobird

2
BMP generalnie cierpi na ten sam problem co WAV, oba nigdy nie są standaryzowane i jako takie są nadużywane w prawie wszystkim, co możesz wymyślić.
Jasper Bekkers

3
@PhilWhittington Mylisz obiekt bitmapowy z formatem pliku. Klasa Bitmap zapisuje w wielu różnych formatach, w tym BMP, TIFF i PNG - ale zapisuje z obiektu bitmapowego (tj. Surowych danych pikseli). W pliku BMP nie ma czegoś takiego jak PNG.
Chuck Le Butt

1
@Monk msdn.microsoft.com/en-us/library/windows/desktop/ ... i wyszukaj „biCompression”. Ta struktura C jest przechowywana bajt po bajcie w pliku BMP, więc pliki BMP mogą również obsługiwać te typy kompresji. To, że nikt ich nie używa, nie oznacza, że ​​są nieważne.
user253751

78

Powinieneś być świadomy kilku kluczowych czynników ...

Po pierwsze, istnieją dwa rodzaje kompresji: bezstratna i stratna .

Bezstratny oznacza, że ​​obraz jest pomniejszony, ale bez uszczerbku dla jakości. Strata oznacza, że ​​obraz jest (jeszcze) mniejszy, ale ze szkodą dla jakości. W przypadku ciągłego zapisywania obrazu w formacie stratnym jakość obrazu będzie się stopniowo pogarszać.

Istnieją również różne głębi kolorów (palety): kolor indeksowany i kolor bezpośredni .

Z indeksowaniem oznacza to, że obraz może przechowywać tylko ograniczoną liczbę kolorów (zwykle 256), które zostały wybrane przez autora obrazu, w przypadku Direct oznacza to, że możesz przechowywać wiele tysięcy kolorów, które nie zostały wybrane przez autora.


BMP - bezstratne / indeksowane i bezpośrednie

To jest stary format. Jest bezstratny (żadne dane obrazu nie są tracone podczas zapisywania), ale jest też niewielka lub żadna kompresja, co oznacza, że ​​zapisywanie w formacie BMP skutkuje BARDZO dużymi rozmiarami plików. Może mieć palety zarówno indeksowane, jak i bezpośrednie, ale to mała pociecha. Rozmiary plików są tak niepotrzebnie duże, że nikt tak naprawdę nigdy nie używa tego formatu.

Good for: Nic tak naprawdę. Nie ma niczego, w czym BMP wyróżnia się, ani nie jest lepszy od innych formatów.

BMP vs GIF


GIF - bezstratne / tylko indeksowane

GIF wykorzystuje kompresję bezstratną, co oznacza, że ​​możesz wielokrotnie zapisywać obraz i nigdy nie stracić żadnych danych. Rozmiary plików są znacznie mniejsze niż BMP, ponieważ w rzeczywistości używana jest dobra kompresja, ale może ona przechowywać tylko paletę indeksowaną. Oznacza to, że plik może zawierać maksymalnie 256 różnych kolorów. To brzmi jak niewielka kwota i tak jest.

Obrazy GIF mogą być również animowane i mieć przezroczystość.

Dobre w przypadku: logo, rysunków kreskowych i innych prostych obrazów, które muszą być małe. Naprawdę używane tylko w witrynach internetowych.

GIF kontra JPEG


JPEG - stratne / bezpośrednie

Obrazy JPEG zostały zaprojektowane tak, aby szczegółowe obrazy fotograficzne były jak najmniejsze, usuwając informacje, których ludzkie oko nie zauważy. W rezultacie jest to format stratny, a wielokrotne zapisywanie tego samego pliku spowoduje utratę większej ilości danych w miarę upływu czasu. Ma paletę tysięcy kolorów, więc jest świetny do zdjęć, ale kompresja stratna oznacza, że ​​jest szkodliwa dla logo i rysunków liniowych: nie tylko będą wyglądać rozmyte, ale takie obrazy będą miały większy rozmiar pliku w porównaniu do GIF!

Dobre dla: fotografii. Również gradienty.

JPEG kontra GIF


PNG-8 - bezstratny / indeksowany

PNG to nowszy format, a PNG-8 (indeksowana wersja PNG) jest naprawdę dobrym zamiennikiem GIF-ów. Niestety ma jednak kilka wad: po pierwsze nie może obsługiwać animacji takiej jak GIF (cóż, ale tylko Firefox wydaje się ją obsługiwać, w przeciwieństwie do animacji GIF obsługiwanej przez każdą przeglądarkę). Po drugie, ma pewne problemy z obsługą starszych przeglądarek, takich jak IE6. Po trzecie, ważne oprogramowanie, takie jak Photoshop, ma bardzo słabą implementację formatu. (Cholera, Adobe!) PNG-8 może przechowywać tylko 256 kolorów, jak GIF.

Dobre dla: Główną rzeczą, którą PNG-8 radzi sobie lepiej niż GIF, jest obsługa przezroczystości alfa.

PNG-8 kontra GIF

Ważna uwaga: Photoshop nie obsługuje przezroczystości alfa dla plików PNG-8. (Cholera, Photoshop!) Istnieją jednak sposoby na konwersję plików Photoshop PNG-24 do PNG-8 z zachowaniem ich przezroczystości. Jedną metodą jest PNGQuant , inną jest zapisywanie plików w programie Fireworks .


PNG-24 - bezstratny / bezpośredni

PNG-24 to wspaniały format, który łączy kodowanie bezstratne z bezpośrednim kolorem (tysiące kolorów, podobnie jak JPEG). Pod tym względem jest bardzo podobny do BMP, z wyjątkiem tego, że PNG faktycznie kompresuje obrazy, więc daje w wyniku znacznie mniejsze pliki. Niestety pliki PNG-24 będą nadal znacznie większe niż pliki JPEG, GIF i PNG-8, więc nadal musisz się zastanowić, czy naprawdę chcesz go użyć.

Mimo że pliki PNG-24 dopuszczają tysiące kolorów przy kompresji, nie mają zastępować obrazów JPEG. Zdjęcie zapisane jako PNG-24 będzie prawdopodobnie co najmniej 5 razy większe niż równoważny obraz JPEG, co bardzo nieznacznie poprawia widoczną jakość. (Oczywiście może to być pożądany rezultat, jeśli nie martwisz się o rozmiar pliku i chcesz uzyskać najlepszą możliwą jakość obrazu).

Podobnie jak PNG-8, PNG-24 również obsługuje przezroczystość alfa.

Mam nadzieję że to pomogło!


8
+1 Jedyne, czego brakuje, aby to była kompletna odpowiedź na pytanie OP, to wzmianka o JPG (popularne rozszerzenie plików dla JPEG) i sekcja dotycząca TIFF.
toksalot

2
Wspomnę również, że kompresja PNG sprawdza się w sytuacjach, których możesz się nie spodziewać. Na przykład gradienty są wysoce kompresowalne w formacie PNG.
Henry Merriam

27

Ogólnie są to:

Kompresja bezstratna Algorytmy kompresji bezstratnej zmniejszają rozmiar pliku bez utraty jakości obrazu, chociaż nie są kompresowane do tak małego pliku, jak plik poddany kompresji stratnej. Gdy jakość obrazu jest wyższa niż rozmiar pliku, zwykle wybiera się algorytmy bezstratne.

Kompresja stratna Algorytmy kompresji stratnej wykorzystują nieodłączne ograniczenia ludzkiego oka i odrzucają niewidoczne informacje. Większość algorytmów kompresji stratnej umożliwia stosowanie różnych poziomów jakości (kompresji), a wraz ze wzrostem tych poziomów zmniejsza się rozmiar pliku. Przy najwyższych poziomach kompresji pogorszenie jakości obrazu staje się zauważalne jako „artefakty kompresji”. Poniższe obrazy pokazują zauważalne artefakty algorytmów kompresji stratnej; wybierz obraz miniatury, aby wyświetlić wersję w pełnym rozmiarze.

Każdy format jest inny, jak opisano poniżej:

JPEG Pliki JPEG (Joint Photographic Experts Group) mają (w większości przypadków) format stratny; rozszerzenie nazwy pliku DOS to JPG (inne systemy operacyjne mogą używać JPEG). Prawie każdy aparat cyfrowy może zapisywać obrazy w formacie JPEG, który obsługuje 8 bitów na kolor (czerwony, zielony, niebieski) w sumie 24-bitowe, tworząc stosunkowo małe pliki. Gdy kompresja nie jest zbyt duża, kompresja nie wpływa zauważalnie na jakość obrazu, ale pliki JPEG ulegają degradacji generacyjnej, gdy są wielokrotnie edytowane i zapisywane. Obrazy fotograficzne mogą być lepiej przechowywane w bezstratnym formacie innym niż JPEG, jeśli będą ponownie edytowane lub jeśli małe „artefakty” (skazy spowodowane przez algorytm kompresji JPEG) są niedopuszczalne. Format JPEG jest również używany jako algorytm kompresji obrazu w wielu plikach Adobe PDF.

TIFF TIFF (Tagged Image File Format) to elastyczny format, który zwykle zapisuje 8 lub 16 bitów na kolor (czerwony, zielony, niebieski) odpowiednio dla 24-bitowych i 48-bitowych sum, używając nazw plików TIFF lub TIF . Elastyczność TIFF jest zarówno błogosławieństwem, jak i przekleństwem, ponieważ żaden czytelnik nie czyta każdego typu pliku TIFF. TIFF są stratne i bezstratne; niektóre oferują stosunkowo dobrą bezstratną kompresję dla obrazów dwupoziomowych (czarno-białych). Niektóre aparaty cyfrowe mogą zapisywać dane w formacie TIFF, używając algorytmu kompresji LZW do bezstratnego przechowywania. Format obrazu TIFF nie jest powszechnie obsługiwany przez przeglądarki internetowe. TIFF pozostaje powszechnie akceptowanym standardem plików fotograficznych w branży poligraficznej. TIFF może obsługiwać przestrzenie kolorów specyficzne dla urządzenia, takie jak CMYK zdefiniowane przez określony zestaw farb drukarskich.

PNG Format pliku PNG (Portable Network Graphics) powstał jako darmowy następca formatu GIF o otwartym kodzie źródłowym. Format pliku PNG obsługuje truecolor (16 milionów kolorów), podczas gdy GIF obsługuje tylko 256 kolorów. Plik PNG wyróżnia się, gdy obraz ma duże, jednolicie kolorowe obszary. Bezstratny format PNG najlepiej nadaje się do edycji obrazów, a formaty stratne, takie jak JPG, są najlepsze do ostatecznej dystrybucji obrazów fotograficznych, ponieważ pliki JPG są mniejsze niż pliki PNG. Wiele starszych przeglądarek obecnie nie obsługuje formatu pliku PNG, jednak w przypadku programu Internet Explorer 7 wszystkie współczesne przeglądarki internetowe w pełni obsługują format PNG. Przeplot Adam7 umożliwia wczesny podgląd, nawet jeśli przesłano tylko niewielki procent danych obrazu.

GIF GIF (Graphics Interchange Format) jest ograniczony do 8-bitowej palety lub 256 kolorów. To sprawia, że ​​format GIF nadaje się do przechowywania grafiki ze stosunkowo niewielką liczbą kolorów, takich jak proste diagramy, kształty, logo i obrazy w stylu kreskówek. Format GIF obsługuje animacje i jest nadal szeroko stosowany do zapewniania efektów animacji obrazu. Wykorzystuje również bezstratną kompresję, która jest bardziej efektywna, gdy duże obszary mają jeden kolor, a nieskuteczna w przypadku obrazów szczegółowych lub obrazów z dudkami.

BMP Format pliku BMP (mapa bitowa systemu Windows) obsługuje pliki graficzne w systemie operacyjnym Microsoft Windows. Zwykle pliki BMP są nieskompresowane, dlatego są duże; zaletą jest ich prostota, szeroka akceptacja i zastosowanie w programach Windows.

Użyj dla stron internetowych / aplikacji internetowych

Poniżej znajduje się krótkie podsumowanie tych formatów obrazów podczas ich używania ze stroną internetową / aplikacją.

  • PNG jest świetny dla IE6 i nowszych (będzie wymagać małej łatki CSS, aby uzyskać dobrą przezroczystość). Doskonały do ​​ilustracji i zdjęć.
  • JPG świetnie nadaje się do zdjęć online
  • GIF jest dobry do ilustracji, gdy nie chcesz przenosić się do PNG
  • BMP nie powinien być używany online na stronach internetowych - marnuje przepustowość


  • Źródło: Formaty plików graficznych


    5

    Ponieważ inni omówili różnice, trafię do zastosowań.

    TIFF jest zwykle używany przez skanery. Tworzy ogromne pliki i nie jest tak naprawdę używany w aplikacjach.

    BMP jest nieskompresowany, a także tworzy ogromne pliki. Nie jest też tak naprawdę używany w aplikacjach.

    GIF był kiedyś w całej sieci, ale wypadł z łask, ponieważ obsługuje tylko ograniczoną liczbę kolorów i jest opatentowany.

    JPG / JPEG jest używany głównie do wszystkiego, co ma jakość fotograficzną, ale nie do tekstu. Stosowana kompresja stratna ma tendencję do niszczenia ostrych linii.

    PNG nie jest tak mały jak JPEG, ale jest bezstratny, więc nadaje się do obrazów z ostrymi liniami. Jest teraz w powszechnym użyciu w sieci.

    Osobiście zwykle używam PNG wszędzie, gdzie mogę. To dobry kompromis między JPG i GIF.


    BMP można skompresować RLE ... To niewiele, ale skuteczne w przypadku prostych obrazów. Jest to również zastrzeżony (Microsoft) format.
    PhiLho

    4
    Patent GIF wygasł w 2004 r.
    Dour High Arch

    1
    TIFF cieszy się ogromną popularnością wśród ludzi, którzy potrzebują bezstratnej jakości (artyści). Świetnie nadaje się również do kompresji obrazów monochromatycznych, dzięki czemu jest to jeden z najpopularniejszych formatów oprogramowania do cyfrowego skanowania faksów / dokumentów.
    Vilx-

    1
    W najnowszej specyfikacji BMP umożliwia również kompresję zawartości w formacie PNG lub JPEG.
    Vilx

    2

    JPG> Wspólna Grupa Ekspertów Fotograficznych

    1 Obrazy JPG obsługują 16 milionów kolorów i najlepiej nadają się do fotografii i złożonej grafiki

    2 JPG nie obsługują przezroczystości.

    PNG> Portable Network Graphics

    1 Jest używany jako alternatywa dla formatu pliku GIF, gdy technologia GIF była chroniona prawami autorskimi i wymagała pozwolenia na użycie.

    2 pliki PNG zapewniają od 5 do 25 procent większą kompresję niż pliki GIF i mają szerszą gamę kolorów. Pliki PNG używają przeplotu dwuwymiarowego, dzięki czemu ładują się dwa razy szybciej niż obrazy GIF ”.

    3 Obraz, który ma dużo kolorów lub wymaga zaawansowanej zmiennej przezroczystości, preferowanym typem pliku jest PNG.

    GIF> Format wymiany grafiki

    1 Zmniejsza liczbę kolorów obrazu do 256.

    2 GIF-y obsługują również przezroczystość.

    3 GIF-y mają wyjątkową możliwość wyświetlania sekwencji obrazów, podobnie jak w przypadku filmów, zwanej animowanym GIF-em.

    4 Jeśli obraz ma niewiele kolorów i nie wymaga żadnego zaawansowanego efektu przezroczystości alfa, najlepszym rozwiązaniem jest GIF.

    SVG> Skalowalna grafika wektorowa

    1 SVG to standard sieciowy oparty na XML, który opisuje zarówno statyczne obrazy, jak i animacje w dwóch wymiarach.

    2 SVG umożliwia tworzenie grafiki i animacji o bardzo wysokiej jakości, które nie tracą szczegółów wraz ze wzrostem / zmniejszeniem ich rozmiaru.


    1

    Nazwy te odnoszą się do różnych sposobów kodowania danych obrazu pikseli (JPG i JPEG to to samo, a TIFF może po prostu zawierać plik jpeg z dodatkowymi metadanymi).

    Te formaty obrazów mogą wykorzystywać różne algorytmy kompresji, różne reprezentacje kolorów, różne możliwości przenoszenia dodatkowych danych innych niż sam obraz i tak dalej.

    W przypadku aplikacji internetowych powiedziałbym, że jpeg lub gif jest wystarczająco dobre. Jpeg jest używany częściej ze względu na wyższy współczynnik kompresji, a gif jest zwykle używany do animacji o małej wadze, w których flash (lub coś podobnego) jest nadmiernym zabiciem lub miejsc, w których pożądane jest przezroczyste tło. PNG może być również używany, ale nie mam z tym dużego doświadczenia. BMP i TIFF prawdopodobnie nie są dobrymi kandydatami do aplikacji internetowych.


    1

    Co powiedzieli coobird i Gerald.

    Ponadto JPEG to nazwa formatu pliku. JPG jest powszechnie używanym skróconym rozszerzeniem pliku dla tego formatu, ponieważ we wcześniejszych systemach Windows potrzebne było 3-literowe rozszerzenie pliku. Podobnie z TIFF i TIF.

    Przeglądarki internetowe w tej chwili wyświetlają tylko pliki JPEG, PNG i GIF - więc to są te, które można wyświetlać na stronach internetowych.


    Obsługa przeglądarek nie ogranicza się do JPEG, PNG i GIF: formaty takie jak między innymi BMP, ICO, SVG i XBM są natywnie obsługiwane w wielu przeglądarkach.
    scronide,

    W porządku, powinienem był powiedzieć, że JPEG, GIF i PNG to formaty obsługiwane przez większość przeglądarek.
    Gnudiff

    1

    PNG obsługuje przezroczystość kanałów alfanumerycznych.

    TIFF może mieć rozszerzone opcje, tj. Odniesienia geograficzne dla aplikacji GIS .

    Zalecam używanie formatu JPEG tylko w przypadku zdjęć, nigdy w przypadku obrazów takich jak obiekty clipart, logo, tekst, diagramy, grafiki liniowe.

    Preferuj PNG.


    1

    Wymienione wszystkie są grafikami rastrowymi, ale oprócz tego nie zapominaj o coraz ważniejszych wektorach. Istnieją typy skompresowane i nieskompresowane (w mniejszym lub większym stopniu), ale wszystkie są bezstratne. Najważniejsze to:


    0

    Rozszerzenie pliku informuje o sposobie zapisania obrazu. Niektóre z tych formatów po prostu zapisują bity bez zmian, niektóre kompresują obraz na różne sposoby, w tym metodą bezstratną i stratną. Sieć może ci to powiedzieć, chociaż wiem, że niektórzy z pacjentów, którzy udzielili pomocy, przedstawią je tutaj.

    Sieć preferuje głównie gif, jpg i png. JPEG jest tym samym (lub bardzo zbliżonym) do jpg.


    0

    W przypadku określonej różnicy i zastosowania między różnymi formatami obrazu mamy już dobrą dyskusję powyżej.

    Chcę jednak dodać coś do ogólnego procesu robienia zdjęć i ich przechowywania.

    Proces przechwytywania

    Lub możesz powiedzieć proces konstruowania (tak jak teraz możemy rysować lub robić zdjęcia za pomocą komputerów). Jeśli robisz zdjęcie aparatem, używasz już wielu czujników (CCD lub CMOS) i algorytmów (filtr wzoru Bayera, podpróbkowanie i kwantyzacja itp.). Są też takie rzeczy jak Pixel Formati Color Space. Po uzyskaniu podstawowych informacji o pikselach musi istnieć sposób na ich przechowywanie.

    Podstawowa struktura pliku obrazu

    Do przechowywania informacji o pikselach w pliku potrzebujemy konwencji i powiązanych algorytmów. Aby zaoszczędzić miejsce, istnieje kompresja, ale zasadniczo problem polega na kodowaniu pikseli na bajty i dekodowaniu bajtów na piksele w celu wyświetlenia.

    Typowy plik obrazu może składać się z kilku części, w zasadzie dwóch: meta data or file headeri pixel data section. meta dataMówi o obrazie samego, może heighti width, file formatitp A pixel data sectionjest prawdziwa section, która zajmuje się real picture.

    Przechowywanie i wyświetlanie

    Jak powiedzieliśmy wcześniej, pliki są przechowywane na dysku twardym i są w bajtach / bitach. Pliki obrazów nie mają więc żadnego priorytetu, ale w rzeczywistości również przesyłają bajty. Do wyświetlania, może powinniśmy coś wiedzieć, jak działa monitor. Typowe monitory PC wykorzystują do wyświetlania model RGB.

    Mam nadzieję że to pomoże:-)

    Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
    Licensed under cc by-sa 3.0 with attribution required.