Ano ang isang TIFF file?
Ang TIFF o TIF, Tagged Image File Format, ay kumakatawan sa mga raster na larawan na nilalayong gamitin sa iba’t ibang device na sumusunod sa pamantayan ng format ng file na ito. May kakayahang ilarawan ang bilevel, grayscale, palette-color at full-color na data ng imahe sa ilang mga color space. Sinusuportahan nito ang lossy pati na rin ang lossless compression scheme upang pumili sa pagitan ng espasyo at oras para sa mga application na gumagamit ng format. Ang format ay hindi nakadepende sa makina at libre sa mga hangganan tulad ng processor, operating system, o mga file system.
Maikling Kasaysayan ng Format ng File ng TIFF
Ang format ng TIFF file ay unang ginawa ng Aldus Corporation noong taglagas ng 1986, pagkatapos ng isang serye ng mga pagpupulong sa iba’t ibang mga tagagawa ng scanner at mga developer ng software. Ang pangunahing layunin ng format ng TIFF file ay magbigay ng isang karaniwang na-scan na format ng file ng imahe para sa lahat ng mga vendor ng desktop scanner. Simula sa suporta para lamang sa binary na format ng imahe, ang format ay nagbago sa suporta ng grayscale at kulay na mga imahe sa paglipas ng panahon. Ang paunang bersyon ng mga detalye ng format ng file ng TIFF ay maaaring ma-label bilang Reivision 3.0 dahil mayroong dalawang naunang paglabas ng draft. Ang isang pangunahing Rebisyon 5.0 ay nai-publish noong 1988 na nagdagdag ng suporta para sa mga larawan ng kulay ng palette at LZW compression. Ang rebisyon 6.0 ng mga format ng file ng TIFF ay nai-publish noong 1992 pagkatapos noon. Noong 1994, nakuha ng Adobe Systems ang Aldus at ang mga detalye ay magagamit na ngayon at pinananatili ng Adobe Systems.
Mga Detalye ng Format ng File ng TIFF
Ang format ng file na TIFF ay maaaring palawakin at sumailalim sa ilang mga pagbabago na nagbibigay-daan sa pagsasama ng walang limitasyong halaga ng pribado o espesyal na layunin na impormasyon. Ang isang TIFF file ay nagsisimula sa isang 8-byte na header kung saan ang mga byte ay numero mula 0 hanggang N. Ang pinakamalaking posibleng TIFF file ay 2**32 byte ang haba. Nagsisimula ang file sa isang 8-byte na image file header na direktang tumuturo sa isang image file (IFD). Ang isang IFD ay naglalaman ng impormasyon tungkol sa larawan pati na rin ang mga payo sa aktwal na data ng larawan.
TIFF File Header
Ang 8-byte na TIFF file header ay naglalaman ng sumusunod na impormasyon:
Bytes 0-1: Ang byte order na ginamit sa loob ng file. Ang mga legal na halaga ay:“II”(4949.H)“MM” (4D4D.H).
Sa “II” na format, ang byte order ay palaging mula sa pinakamaliit na makabuluhang byte hanggang sa pinaka makabuluhang byte, para sa parehong 16-bit at 32-bit integer. Ito ay tinatawag na little-endian byte order. Sa “MM” na format, ang byte order ay palaging mula sa pinakamahalaga hanggang sa hindi gaanong makabuluhan, para sa parehong 16-bit at 32-bit na integer. Ito ay tinatawag na big-endian byte order.
Bytes 2-3: Isang arbitrary ngunit maingat na piniling numero (42) na higit pang tumutukoy sa file bilang isang TIFF file. Ang byte order ay depende sa halaga ng Bytes 0-1.
Bytes 4-7: Ang offset (sa bytes) ng unang IFD. Ang direktoryo ay maaaring nasa anumang lokasyon sa file pagkatapos ng header ngunit dapat magsimula sa isang hangganan ng salita. Sa partikular, maaaring sundin ng isang Direktoryo ng File ng Larawan ang data ng larawan na inilalarawan nito. Dapat sundin ng mga mambabasa ang mga pointer saanman sila maaaring humantong. Ang terminong byte offset ay palaging ginagamit sa dokumentong ito upang sumangguni sa isang lokasyon na may kinalaman sa simula ng TIFF file. Ang unang byte ng file ay may offset na 0.
Direktoryo ng File ng Larawan
Ang isang IFD ay naglalaman ng impormasyon tungkol sa larawan pati na rin ang mga pointer sa aktwal na data ng larawan. , na sinusundan ng 4-byte na offset ng susunod na IFD (o 0 kung wala). Dapat mayroong hindi bababa sa 1 IFD sa isang TIFF file at ang bawat IFD ay dapat magkaroon ng kahit isang entry.
IFD Entry
Ang bawat 12-byte na IFD Entry ay nasa sumusunod na format.
Bytes | Description |
---|---|
0-1 | The Tag that identifies the field |
2-3 | The field type |
4-7 | Count of the indicated type |
8-11 | The Value Offset, the file offset (in bytes) of the Value for the field.The Value is expected to begin on a word boundary; the correspond-ing Value Offset will thus be an even number. This file offset may point anywhere in the file, even after the image data |
Ang field ng TIFF ay isang lohikal na entity na binubuo ng TIFF tag at ang halaga nito. Ang lohikal na konsepto na ito ay ipinatupad bilang isang IFD Entry, kasama ang aktwal na halaga kung hindi ito magkasya sa value/offset na bahagi, ang huling 4 na byte ng IFD Entry. Ang mga terminong TIFF field at IFD entry ay maaaring palitan sa karamihan ng mga konteksto.
Baseline TIFF
Ang baseline na TIFF ay ang core ng TIFF, ang mga mahahalagang bagay na dapat suportahan ng lahat ng pangunahing developer ng TIFF sa kanilang mga produkto. Ang pagsunod sa format na TIFF ay napapailalim sa pagsunod sa mga kinakailangan sa Baseline TIFF. Ang mga kinakailangang ito ay mahusay na dokumentado sa mga detalye ng dokumento 6.0.
Maramihang Larawan Bawat File
Maaaring mayroong higit sa isang IFD sa isang TIFF file. Ang bawat IFD ay tumutukoy sa isang subfile. Ang isang potensyal na paggamit ng mga subfile ay upang ilarawan ang mga kaugnay na larawan, tulad ng mga pahina ng isang facsimile transmission. Ang isang Baseline TIFF reader ay hindi kinakailangang magbasa ng anumang mga IFD na lampas sa una.
Mga Uri ng Larawan
Ang Baseline TIFF Image ay may mga sumusunod na uri:
Bilevel: Ang bilevel na larawan ay naglalaman ng dalawang kulay—itim at puti. Binibigyang-daan ng TIFF ang isang application na isulat ang bilevel na data sa alinman sa white-is-zero o black-is-zero na format. Ang field na nagtatala ng impormasyong ito ay tinatawag na PhotometricInterpretation.
- Buong kulay ng RGB
Ang impormasyon ng PhotometricInterpretation para sa mga larawang Bilevel ay ang sumusunod:
Tag = 262 (106.H) Uri = SHORT Mga Halaga
Value | Decription |
---|---|
0 | For bilevel and grayscale images: 0 is imaged as white. The maxi-mum value is imaged as black. This is the normal value for Compression#2 |
1 | BlackIsZero. For bilevel and grayscale images: 0 is imaged as black. The maxi-mum value is imaged as white. If this value is specified for Compression#2, theimage should display and print reversed. |
GrayScale: Ang mga grayscale na larawan ay isang generalization ng mga bilevel na larawan. Ang mga bilevel na larawan ay maaaring mag-imbak lamang ng itim at puting data ng imahe, ngunit ang mga grayscale na larawan ay maaari ding mag-imbak ng mga kulay ng gray. Upang ilarawan ang mga naturang larawan, dapat mong idagdag o baguhin ang mga sumusunod na field. Ang iba pang kinakailangang mga field ay kapareho ng mga kinakailangan para sa mga bilevel na larawan. Para sa mga grayscale na imahe, Compression # 1 o 32773 (PackBits). Sa Baseline TIFF, ang mga grayscale na imahe ay maaaring iimbak bilang hindi naka-compress na data o i-compress gamit ang PackBits algorithm.
BitsPerSample impormasyon para sa grayscale na mga imahe ay ang sumusunod:
Tag = 258 (102.H) Type = SHORT
Ang bilang ng mga bit bawat bahagi. Ang mga pinapayagang value para sa Baseline TIFF grayscale na mga imahe ay 4 at 8, na nagbibigay-daan sa alinman sa 16 o 256 na natatanging kulay ng gray.
Palette-Color: Palette-color na mga larawan ay katulad ng grayscale na mga larawan. Mayroon pa rin silang isang bahagi sa bawat pixel, ngunit ang halaga ng bahagi ay ginagamit bilang isang index sa isang buong RGB-lookup table. Upang ilarawan ang mga naturang larawan, kailangan mong idagdag o baguhin ang mga sumusunod na field. Ang impormasyon ng PhotometricInterpretation para sa Palette-Color na larawan ay ang sumusunod:
PhotometricInterpretation = 3 (Palette Color). ColorMapTag = 320 (140.H) Type = SHORT N = 3 * (2 BitsPerSample)
Tinutukoy ng field na ito ang isang Red-Green-Blue na mapa ng kulay (kadalasang tinatawag na lookup table) para sa mga larawan ng kulay ng palette. Sa isang palette-color na imahe, isang pixel value ang ginagamit para i-index sa isang RGB-lookup table. Halimbawa, ang isang palette-color pixel na may value na 0 ay ipapakita ayon sa 0th Red, Green, Blue triplet. Sa ColorMap, ang itim ay kinakatawan ng 0,0,0 at ang puti ay kinakatawan ng 65535, 65535, 65535.
RGB full-color: Sa isang RGB na imahe, ang bawat pixel ay binubuo ng tatlong bahagi: pula, berde, at asul. Walang ColorMap. Upang ilarawan ang isang RGB na imahe, kailangan mong idagdag o baguhin ang mga sumusunod na field at value. Ang iba pang kinakailangang mga field ay kapareho ng mga kinakailangan para sa mga larawang may kulay na palette.
BitsPerSample = 8,8,8. Ang bawat bahagi ay 8 bits malalim sa isang Baseline TIFF RGB na imahe.
PhotometricInterpretation = 2 (RGB) and there is no ColorMap.
Tag = 277 (115.H) Type = SHORT Ang bilang ng mga bahagi sa bawat pixel. Ang numerong ito ay 3 para sa mga RGB na imahe, maliban kung may mga karagdagang sample.