מהו קובץ TIFF?
TIFF או TIF, Tagged Image File Format, מייצגים תמונות רסטר המיועדות לשימוש במגוון מכשירים התואמים לתקן פורמט קובץ זה. היא מסוגלת לתאר נתוני תמונה דו-שלבית, גווני אפור, צבעי לוח וצבע מלא במספר מרחבי צבע. הוא תומך בסכימות דחיסה חסרות אובדן לבחירה בין מקום וזמן עבור יישומים המשתמשים בפורמט. הפורמט אינו תלוי במכונה והוא נקי מגבולות כמו מעבד, מערכת הפעלה או מערכות קבצים.
היסטוריה קצרה של פורמט קובץ TIFF
פורמט קובץ TIFF נוצר לראשונה על ידי תאגיד אלדוס בסתיו 1986, לאחר סדרה של פגישות עם יצרני סורקים ומפתחי תוכנה שונים. המטרה העיקרית של פורמט קובץ TIFF הייתה לספק פורמט קובץ תמונה סרוקה משותף לכל ספקי סורקי השולחן העבודה. החל מתמיכה בפורמט תמונה בינארי בלבד, הפורמט התפתח לתמיכה בתמונות בגווני אפור וצבע עם חלוף הזמן. ניתן לתייג את הגרסה הראשונית של מפרטי פורמט קובץ TIFF כ-Reivision 3.0 מכיוון שהיו שתי מהדורות טיוטה קודמות. גרסה עיקרית 5.0 פורסם בשנת 1988 שהוסיף תמיכה בתמונות צבעוניות של לוח צבעים ודחיסת LZW. גרסה 6.0 של פורמטים של קובץ TIFF פורסמה ב-1992 לאחר מכן. בשנת 1994, Adobe Systems רכשה את אלדוס והמפרטים זמינים ומתוחזקים כעת על ידי Adobe Systems.
מפרטי פורמט קובץ TIFF
פורמט קובץ TIFF ניתן להרחבה ועבר מספר תיקונים המאפשרים הכללת כמות בלתי מוגבלת של מידע פרטי או למטרות מיוחדות. קובץ TIFF מתחיל בכותרת של 8 בתים כאשר הבתים הם מספר מ-0 עד N. קובץ ה-TIFF הגדול ביותר האפשרי הוא באורך של 2**32 בתים. הקובץ מתחיל בכותרת של קובץ תמונה של 8 בתים שמצביעה על קובץ תמונה ישירות (IFD). IFD מכיל מידע על התמונה וכן מצביעים לנתוני התמונה בפועל.
כותרת קובץ TIFF
כותרת קובץ ה-TIFF של 8 בתים מכילה את המידע הבא:
Bytes 0-1: סדר הבתים בשימוש בקובץ. הערכים החוקיים הם:“II”(4949.H)“MM” (4D4D.H).
בפורמט “II”, סדר הבתים הוא תמיד מהבייט הכי פחות משמעותי לבייט המשמעותי ביותר, הן עבור מספרים שלמים של 16 סיביות והן עבור 32 סיביות. זה נקרא סדר בתים אנדיאן קטן. בפורמט “MM”, סדר בתים הוא תמיד מהמשמעותי ביותר לפחות משמעותי, עבור מספרים שלמים של 16 סיביות ו-32 סיביות. זה נקרא סדר בתים גדול-אנדיאן.
Bytes 2-3: מספר שרירותי אך נבחר בקפידה (42) שמזהה עוד יותר את הקובץ כקובץ TIFF. סדר הבתים תלוי בערך של Bytes 0-1.
בתים 4-7: ההיסט (בבתים) של ה-IFD הראשון. הספרייה יכולה להיות בכל מיקום בקובץ אחרי הכותרת אבל חייבת להתחיל על גבול מילים. בפרט, ספריית קבצי תמונה עשויה לעקוב אחר נתוני התמונה שהיא מתארת. הקוראים חייבים לעקוב אחר המצביעים לכל מקום שהם עלולים להוביל. המונח היסט בתים משמש תמיד במסמך זה כדי להתייחס למיקום ביחס לתחילת קובץ ה-TIFF. לבייט הראשון של הקובץ יש היסט של 0.
ספריית קבצי תמונה
IFD מכיל מידע על התמונה וכן מצביעים לנתוני התמונה בפועל.. הוא מורכב מספירה של 2 בתים של מספר כניסות הספרייה (כלומר מספר השדות), ואחריה רצף של כניסות שדות של 12 בתים , ואחריו היסט של 4 בתים של ה-IFD הבא (או 0 אם אין). חייב להיות לפחות IFD 1 בקובץ TIFF ולכל IFD חייב להיות לפחות ערך אחד.
כניסת IFD
כל ערך IFD של 12 בתים הוא בפורמט הבא.
Bytes | תיאור |
---|---|
0-1 | התג שמזהה את השדה |
2-3 | סוג השדה |
4-7 | ספירה מהסוג המצוין |
8-11 | היסט הערך, היסט הקובץ (בבתים) של הערך עבור השדה. הערך צפוי להתחיל על גבול מילה; לפיכך, היסט הערך המתאים יהיה מספר זוגי. היסט קובץ זה עשוי להצביע לכל מקום בקובץ, אפילו אחרי נתוני התמונה |
שדה TIFF הוא ישות לוגית המורכבת מתג TIFF והערך שלו. מושג לוגי זה מיושם כערך IFD, בתוספת הערך האמיתי אם הוא לא מתאים לחלק הערך/היסט, 4 הבייטים האחרונים של ערך ה-IFD. המונחים שדה TIFF וכניסת IFD ניתנים להחלפה ברוב ההקשרים.
TIFF בסיסי
Baseline TIFF הוא הליבה של TIFF, הדברים החיוניים שכל מפתחי TIFF מיינסטרים צריכים לתמוך במוצרים שלהם. התאמה לפורמט TIFF כפופה לעמידה בדרישות ה- Baseline TIFF. דרישות אלו מתועדות היטב במסמך המפרט 6.0.
תמונות מרובות לכל קובץ
ייתכן שיש יותר מ-IFD אחד בקובץ TIFF. כל IFD מגדיר קובץ משנה. שימוש פוטנציאלי אחד של קבצי משנה הוא לתאר תמונות קשורות, כגון דפי שידור פקסימיליה. קורא TIFF Baseline אינו נדרש לקרוא כל IFD מעבר לראשון.
סוגי תמונות
תמונת TIFF בסיסית כוללת את הסוגים הבאים:
Bilevel: תמונת Bilevel מכילה שני צבעים - שחור ולבן. TIFF מאפשר לאפליקציה לכתוב נתוני דו-רמה בפורמט לבן-הוא-אפס או שחור-הוא-אפס. השדה שמתעד מידע זה נקרא Photometric Interpretation.
- RGB בצבע מלא
מידע פרשנות פוטומטרי עבור תמונות Bilevel הוא כדלקמן:
תג = 262 (106.H) סוג = SHORT ערכים
ערך | תיאור |
---|---|
0 | עבור תמונות דו רמות וגווני אפור: 0 מוצג כלבן. הערך המקסימלי מוצג בשחור. זהו הערך הרגיל עבור Compression#2 |
1 | BlackIsZero. עבור תמונות דו רמות וגווני אפור: 0 מצולם כשחור. הערך המקסימלי מוצג כלבן. אם ערך זה צוין עבור Compression#2, התמונה אמורה להופיע ולהדפיס הפוכה. |
גווני אפור: תמונות בגווני אפור הן הכללה של תמונות דו-שלביות. תמונות Bievel יכולות לאחסן רק נתוני תמונה בשחור-לבן, אך תמונות בגווני אפור יכולות לאחסן גם גוונים של אפור. כדי לתאר תמונות כאלה, עליך להוסיף או לשנות את השדות הבאים. שאר השדות הנדרשים זהים לאלו הנדרשים עבור תמונות bilevel. עבור תמונות בגווני אפור, דחיסה מס’ 1 או 32773 (PackBits). ב-Baseline TIFF, ניתן לאחסן תמונות בגווני אפור כנתונים לא דחוסים או לדחוס באמצעות אלגוריתם PackBits.
מידע BitsPerSample עבור תמונות בגווני אפור הוא כדלקמן:
תג = 258 (102.H) סוג = SHORT
מספר הסיביות לכל רכיב. הערכים המותרים עבור תמונות בגווני אפור Baseline TIFF הם 4 ו-8, המאפשרים 16 או 256 גוונים ברורים של אפור.
פלטת-צבע: תמונות בצבעי לוח דומות לתמונות בגווני אפור. עדיין יש להם רכיב אחד לכל פיקסל, אבל ערך הרכיב משמש כאינדקס לטבלת חיפוש RGB מלאה. כדי לתאר תמונות כאלה, עליך להוסיף או לשנות את השדות הבאים. השדות הדרושים האחרים זהים לאלה של תמונות בגווני אפור. מידע פירוש פוטומטרי עבור תמונת פלטת צבע הוא כדלקמן:
פרשנות פוטומטרית = 3 (צבע לוח). ColorMapTag = 320 (140.H) סוג = SHORT N = 3 * (2 BitsPerSample)
שדה זה מגדיר מפת צבע אדום-ירוק-כחול (המכונה לעתים קרובות טבלת חיפוש) עבור תמונות צבעוניות של פלטת צבעים. בתמונה בצבעי פלטת, ערך פיקסל משמש לאינדקס לטבלת חיפוש RGB. לדוגמה, פיקסל בצבעי פלטת עם ערך 0 יוצג לפי הטריפלט האדום, הירוק, הכחול ה-0. במפת TIFF ColorMap, כל הערכים האדומים באים קודם, ואחריהם הערכים הירוקים ולאחר מכן הערכים הכחולים. ב-ColorMap, שחור מיוצג על ידי 0,0,0 ולבן מיוצג על ידי 65535, 65535, 65535.
RGB בצבע מלא: בתמונת RGB, כל פיקסל מורכב משלושה רכיבים: אדום, ירוק וכחול. אין ColorMap. כדי לתאר תמונת RGB, עליך להוסיף או לשנות את השדות והערכים הבאים. שאר השדות הנדרשים זהים לאלו הדרושים עבור תמונות בצבעי פלטת.
BitsPerSample = 8,8,8. כל רכיב הוא בעומק של 8 ביטים בתמונת Baseline TIFF RGB.
PhotometricInterpretation = 2 (RGB) ואין ColorMap.
תג = 277 (115.H) סוג = SHORT מספר הרכיבים לפיקסל. מספר זה הוא 3 עבור תמונות RGB, אלא אם קיימות דוגמאות נוספות.