Mi az a JFIF fájl?
A JFIF (JPEG File Interchange Format (JFIF)) egy képformátumú fájl, amely .jfif kiterjesztést használ. A JFIF a JIF-re (JPEG Interchange Format) épül azáltal, hogy csökkenti a bonyolultságot és megoldja a korlátait.
A JFIF rövid története
A JFIF-dokumentumfejlesztést Eric Hamilton vezette, és 1991 végén megállapodás született az első verzióról. Az 1.02-es verziót 1992. szeptember 7-én tették közzé. Az RFC 2046 előírja, hogy a JFIF formátumot használják a JPEG képek interneten keresztüli továbbítására. A JFIF-et az ECMA 2009-ben tette közzé, és az ITU-T 2011-ben T.871-es ajánlásaként, az ISO/IEC pedig 2013-ban ISO/IEC 10918-5-ként szabványosította.
JFIF fájlformátum
A JFIF-fájl a JPEG-szabvány 1. részében meghatározott markerek sorozatából áll. Minden marker két bájtból áll (FF, majd egy bájt, amely meghatározza a marker típusát). A jelölők lehetnek önállóak, vagy jelezhetik egy markerszegmens kezdetét.
A JFIF lehetővé teszi, hogy több komponens, például Y, Cb, Cr, eltérő felbontású legyen, de az igazításuk nincs meghatározva. A JPEG-től eltérően a JFIF képes felbontásra és képarányra vonatkozó információkat szolgáltatni. A JFIF meghatározza a használandó színmodellt is.
Fájlszerkezet
| Szegmens | Kód | Leírás |
|---|---|---|
| SOI | FF D8 | Kép eleje |
| JFIF-APP0 | FF E0 s1 s2 4A 46 49 46 00 … | |
| JFXX-APP0 | FF E0 s1 s2 4A 46 58 58 00 … | |
| további marker szegmensek | ||
| SOS | FF DA | Szkennelés kezdete |
| tömörített képadatok | ||
| EOI | FF D9 | Kép vége |
A JFIF szabvány a következő szegmenseket határozza meg:
JFIF APP0 markerszegmens
Ez egy kötelező képparamétereket tartalmazó szegmens. Beágyazott tömörítetlen bélyegképet is tartalmazhat.
| Mező | Méret (byte) | Leírás |
|---|---|---|
| APP0 marker | 2 | FF E0 |
| Length | 2 | A szegmens hossza az APP0 marker nélkül |
| Azonosító | 5 | JFIF (4A 46 49 46 00) az ASCII-ben null byte-tal lezárva |
| JFIF verzió | 2 | A JFIF verziója |
| Sűrűség mértékegységei | 1 | A következő pixelsűrűség mezők egysége 00 : Nincs mértékegység; szélesség:magasság pixel képarány megegyezik Ydensity:Xdensity értékkel 01 : Képpont per hüvelyk 02 : Képpont per centiméter |
| Xdensity | 2 | A vízszintes pixelsűrűség nagyobb, mint nulla |
| Ydensity | 2 | Függőleges pixelsűrűség nagyobb, mint nulla |
| Xthumbnail | 1 | A beágyazott RGB-bélyegkép vízszintes pixelszáma. Lehet nulla |
| Ythumbnail | 1 | A beágyazott RGB-bélyegkép függőleges pixelszáma. Lehet nulla |
| Miniatűr adatok | 3 × n | Tömörítetlen 24 bites RGB raszteres miniatűr adatok |
JFIF bővítmény APP0 markerszegmens
Ez egy opcionális szakasz, amely ha definiált, azonnal követnie kell a JFIF APP0 marker szegmenst. Ezt a szakaszt a JFIF 1.02-es és újabb verziója támogatja, és lehetővé teszi miniatűrök beágyazását három különböző formátumban.
| Mező | Méret (byte) | Leírás |
|---|---|---|
| APP0 marker | 2 | FF E0 |
| Length | 2 | A szegmens hossza az APP0 marker nélkül |
| Azonosító | 5 | JFXX (4A 46 58 58 00) az ASCII-ben null byte-tal lezárva |
| Miniatűr formátum | 1 | Meghatározza, hogy milyen adatformátumot használjon a következő beágyazott miniatűr: 10 : JPEG formátum 11 : 1 bájt/pixel palettázott formátum 13 : 3 bájt/pixel RGB formátum |
| Miniatűr adatok | változó |
JFIF konvertálása más képfájlformátumokká
A JFIF konvertálható népszerű képfájlformátumokká, például PNG, JPG és PDF.