Czy PNG zawiera dane EXIF, takie jak JPG?


100

Zastanawiałem się, czy PNG zawiera takie dane?

To, co zrobiłem, to przekonwertować plik jpg do formatu png i spodziewałem się odzyskać te same informacje, które miałem w pliku jpg, jak poniżej:

Obecnie używam tej biblioteki as3 do odczytu danych.

  • IDF0 --- IDF @ [134–248] (9 wpisów)
    • Orientacja (KRÓTKA): 1
    • XResolution (RATIONAL): 72/1
    • YResolution (RATIONAL): 72/1
    • ResolutionUnit (KRÓTKI): 2
    • Oprogramowanie (ASCIIx16): QuickTime 7.6.6
    • Data i godzina (ASCIIx20): 2011: 10: 02 22:43:37
    • Komputer hosta (ASCIIx16): Mac OS X 10.6.8
    • Exif IFD (LONG): 8 34853
    • GPS IFD (DŁUGI): 248

 

  • EXIF IDF --- IDF @ [8 - 134] (10 wpisów)
    • ExifVersion (UNDEFINEDx4): 0220
    • DateTimeOrigina (ASCIIx20): 2011: 04: 14 17:22:01
    • UserComment (UNDEFINEDx63): ASCII
    • FlashpixVersion (UNDEFINEDx4): 0100
    • ColorSpace (KRÓTKI): 1
    • PixelXDimension (LONG): 1022
    • PixelYDimension (LONG): 486
    • Nieznane (ASCIIx13): Tag obrazu-LOL
    • SceneCaptureType (KRÓTKI): 0

 

  • GPS IDF --- IDF @ [248 - 338] (7 wpisów)
    • Indeks interoperacyjności (ASCIIx2): N.
    • Wersja interoperacyjności (RATIONALx3) @ 425: 52/1, 1144/100, 0/1
    • Nieznane (ASCIIx2): W.
    • Nieznane (RATIONALx3): 1/1, 4392/100, 0/1
    • Nieznane (RATIONAL): 5/1
    • Nieznane (ASCIIx2): T
    • Nieznane (RATIONAL): 3694/117

 

Odpowiedzi:


131

Edycja: Wersja 1.5.0 (lipiec 2017) rozszerzeń specyfikacji PNG 1.2 w końcu dodała fragment EXIF. Okaże się, czy kodery-dekodery zaczną go obsługiwać.

Oryginał: PNG nie zawiera informacji EXIF. Pozwala jednak na osadzanie „ fragmentów ” metadanych wewnątrz obrazu. Niektóre ze standaryzowanych fragmentów odpowiadają kilku atrybutom EXIF ​​(wymiary fizyczne, znacznik czasu). Możliwe jest również przechowywanie dowolnych danych tekstowych jako key=>valuepar lub definiowanie nowych typów fragmentów. Więc teoretycznie możesz przechowywać dowolne informacje EXIF ​​... ale, niestety, w swoim własnym niestandardowym formacie. Wydaje się, że niektóre próby standaryzacji nie przyniosły rezultatu.


30

Edycja: od lipca 2017 r. PNG oficjalnie obsługuje fragment eXIf do przechowywania metadanych EXIF ​​( specyfikacja ). ExifTool 10.59 i nowsze wersje zapisują EXIF ​​do tego nowego fragmentu w obrazach PNG.

Oryginał: ImageMagick przechowuje informacje EXIF ​​w porcji zTXt PNG typu „Raw profile APP1” zTXt podczas konwersji z obrazów JPEG. Ta metoda przechowywania EXIF ​​w obrazach PNG jest również obsługiwana przez ExifTool (i uważam, że Exiv2 również), ale nie jest częścią specyfikacji PNG ani EXIF.


Dobrze wiedzieć! Czy wiesz, czy wyodrębnia go również z TIFF?
Olivier - interfaSys

4
Grupa PNG rozważała ostatnio dodanie nowego fragmentu „eXIf” i / lub „zXIf” do przechowywania informacji EXIF. ExifTool 10.43 dodał obsługę fragmentów „exIf” i „zxIf” w celu wsparcia tego.
PhilHarvey

9

PNG nie obsługuje osadzania informacji EXIF. Podczas konwersji z formatu JPEG do formatu PNG informacje są tracone.


1
hej, czy jest jakaś dokumentacja, która to mówi? ponieważ potrzebuję dowodu, aby powiadomić mojego przełożonego, ponieważ pracuję nad projektem, który wymaga ode mnie przeczytania informacji EXIF ​​dla png. Jeśli tak, mógłbym mu pokazać i powiadomić o tym
user1004413

9
Możesz wskazać mu specyfikację , która nie ma ukrytej ani jawnej specyfikacji osadzania danych EXIF, lub wpis wiki w formacie PNG .
Percepcja

5
To nie jest do końca prawdą. Na przykład, jeśli użyjesz convert(z ImageMagick), aby przekonwertować JPEG na PNG, a następnie użyjesz convertdo konwersji PNG z powrotem na JPEG, nowy JPEG nadal będzie zawierał dane EXIF.
mofoe

GIMP przechowuje „Komentarz użytkownika” w pliku PNG jako metadane „EXIF2”. Wydaje się, że w kawałkach jest na to pole. Dokładny sposób i dlaczego nie jestem pewien. Sam mam podobny wymóg.
VectorVictor

1
W 2012 roku ta odpowiedź mogła być prawdziwa, ale czy nadal jest poprawna?
RockPaperLz- Mask it or Casket

8

Wydaje się, że od lipca 2017 r. Oficjalnie zarejestrowano fragment danych EXIF ​​o nazwie ... eXIf :

Segment danych fragmentu eXIf zawiera profil Exif w formacie określonym w „4.7.2 Struktura interoperacyjności APP1 w skompresowanych danych” [CIPA DC-008-2016], z wyjątkiem tego, że znacznik JPEG APP1, długość i „Exif Kod ID ”opisany w 4.7.2 (C), tj.„ Exif ”, NULL i bajt wypełniający nie są uwzględniane.

Zauważ, że jest to zarówno A) sprzed zaledwie kilku miesięcy (w momencie pisania), jak i B) opcjonalne rozszerzenie, a nie część podstawowej specyfikacji. Dlatego obsługa fragmentu eXIf może być ograniczona w wielu aplikacjach.


2

Miałeś na myśli:

  1. Czy pliki PNG zawierają wymienione przez Ciebie elementy metadanych? Krótka odpowiedź: to zależy.
  2. Czy PNG używa standardu EXIF ​​do przechowywania takich metadanych? Krótka odpowiedź: generalnie nie.

Ogólnie rzecz biorąc, PNG używa różnych fragmentów, które są częścią standardu PNG do przechowywania metadanych. Aby przejrzeć listę:

  • Orientacja - nie dotyczy PNG - ustalona jako wiersz po wierszu, zaczynając od lewego górnego rogu.
  • XResolution, YResolution, ResolutionUnit - fragment pHYs .
  • Oprogramowanie, komputer hosta, inne metadane tekstowe - fragmenty tEXt, iTXt, zTXt .
  • DateTime - Nie jest dla mnie jasne, jaka jest ta data / godzina. TIME wskazuje datę / godzinę ostatniej modyfikacji danych obrazu; inne daty / godziny mogą być przechowywane w fragmentach tekstu. Czas utworzenia to w rzeczywistości zdefiniowany klucz fragmentu tekstu, ale format i sposób obsługi stref czasowych nie są określone, co jest złym projektem.
  • ColorSpace, PixelXDimension, PixelYDimension - nie wiem, jak to byłyby metadane. Mają one fundamentalne znaczenie dla obrazu i jako takie znajdują się w części IHDR .
  • Nie jestem pewien, co oznaczają inne wymienione przez Ciebie osoby.

Co ciekawe , w ostatnich latach fragment eXIf został dodany do oficjalnej listy fragmentów rozszerzeń (co jest zasadniczo dodatkiem do specyfikacji PNG). Prawdopodobnie ma to na celu zachowanie informacji w plikach przekonwertowanych z JPEG / TIFF na PNG i nie jest przeznaczone do użycia w plikach, które zostały pierwotnie utworzone jako PNG, ale nie jest to jasne.


1

Tak i nie.

Jak już stwierdzono w innych odpowiedziach, PNG nie miał formalnego fragmentu EXIF, dopóki nie eXIfzostał dodany w wersji 1.5.0 (2017), a według mojej wiedzy ten fragment nadal nie cieszy się szerokim poparciem.

Ale to dlatego, że tego nie potrzebuje. Wiele programów koduje EXIF ​​w formacie PNG zgodnie z konwencją w iTXt(lub skompresowanym zTXt) fragmencie oznaczonym jako „Raw profile type APP1” . Nowszy eXIffragment miał zapewnić znormalizowaną lokalizację dla tego, chociaż moim zdaniem ten statek płynął teraz.

Ponadto wiele metadanych standardu EXIF ​​może być reprezentowanych przez XMP, alternatywny i nowszy mechanizm transportu metadanych, który ma przestrzeń nazw EXIF ​​do tego właśnie celu. Pliki PNG od lat zawierają dokumenty XMP (w tym przetłumaczone metadane EXIF) w iTXtkawałkach. Przekonasz się, że wiele procesorów konwertuje między nimi w locie.


Czy te same procesory, czymkolwiek są, konwertują XMP lub EXIF ​​na / z różnych standardowych fragmentów metadanych PNG?
Stewart

@Stewart Standardowe fragmenty metadanych PNG są ograniczone i nie mogą reprezentować szerokości danych EXIF ​​lub XMP. Dlatego historycznie zakodowaliśmy EXIF ​​/ XMP w plikach (w fragmentach tekstu).
Asteroids With Wings

OK, przeformułuję to: czy te same procesory konwertują te elementy metadanych XMP lub EXIF, które mogą być reprezentowane przez standardowe fragmenty metadanych PNG na standardowe fragmenty metadanych PNG i na odwrót?
Stewart

@Stewart, nie wiem. Wątpię. Jeśli to zrobią, będzie to bardzo ograniczone. Ogólnie rzecz biorąc, nie ma z tego żadnych korzyści; pola EXIF ​​i XMP mogą nie być standardowe, ale są całkowicie konwencjonalne i szeroko stosowane. Więc wszyscy po prostu tego używają. Metadane PNG zawierają pewne słowa kluczowe / autorów, ale są to głównie dane obrazu.
Asteroids With Wings
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.