מפת פיקסלים ניידת (.ppm)
Netpbm תקןפורמט הפיקסל-מפ ص (Portable Pixmap Format - PPM) הוא תקן ה-RGB מלא-הצבעים של משפחת גרפיקת Netpbm, המספק את הייצוג הלא-דחוס הפשוט ביותר האפשרי של תמונות דיגיטליות בצבע אמיתי (Truecolor).
בדיקה ומטא-דאטה
מערכות הפעלה ומנתחי קבצים מזהים קבצי PPM על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי PPM על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
50 33 / 50 36ייצוג ASCII: P3 / P6
תקינה: Netpbm Library Standard
מפרט טכני
| ארכיטקטורת מעטפת | ASCII (P3) or binary (P6) Netpbm format with width, height, maximum color value, and RGB triplet stream |
| דחיסה | Uncompressed raw binary bytes or human-readable ASCII text triplets |
| סדר בתים (Endianness) | Big-Endian (for 48-bit 16-bit/channel samples in P6 mode) |
| מרחבי צבע | Linear RGB or standard sRGB |
| ערוצים ומבנה | 3 channels RGB (24-bit or 48-bit Truecolor) |
| ממדים מרביים | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| שקיפות | None (standard PPM is strictly opaque RGB) |
| הזרמה ופרוגרסיביות | Sequential row-by-row streaming playback |
מטריצת השוואה טכנית: PPM מול מתחרים
| תכונה טכנית | PPM (נוכחי) | BMP | PNG | TIFF |
|---|---|---|---|---|
| עומק צבע | 24-bit / 48-bit RGB Truecolor | 1-bit to 32-bit RGBA | 24-bit / 48-bit RGBA | 8-bit to 64-bit RGBA |
| בן משפחת Netpbm | PPM (Portable Pixmap) | פורמט שאינו Netpbm | פורמט W3C שאינו Netpbm | פורמט Adobe שאינו Netpbm |
| בתֵי קסם (Magic Bytes) | P3 (ASCII) / P6 (בינארי) | BM (0x42 0x4D) | ‰PNG.... | II*\0 or MM\0* |
| דחיסה | לא דחוס | לא דחוס / RLE | Deflate ללא אובדן נתונים (קטן בכ-70%) | LZW / Deflate / Zip |
מצבי שיחשות נפוצים ומדריך שחזור הקסדצימלי (Hex)
התמונה מרונדרת עם מריחה אלכסונית של ערוצי צבע.
גורם שורש: בית קטום ברצף שלישיות ה-RGB, מה שגורם לחוסר יישור בבתֵי האדום, הירוק והכחול העוקבים.
התאוששות: כוונון מחדש של היסט שלישיות ה-RGB או המרה באמצעות ממיר Netpbm של File2File.
ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)
מפענחי PPM חייבים להגן מפני גלישת מספר שלם (integer overflow) בעת חישוב גדלי מאגר שלישיות ה-RGB בגודל 3 בתים.
ווקטורי תקיפה ידועים
- גלישת מספר שלם במהלך הקצאת מאגר בגודל width * height * 3.
- קריאת יתר ממאגר (buffer over-read) בעת קריאת אסימוני ASCII פגומים במצב P3.
- מניעת שירות עקב הקצאות זיכרון מוגזמות המוגדרות בהצהרות.
השיטות המומלצות להגנה:
היסטוריה ואבני דרך
יתרונות מרכזיים
- פשטות ארכיטקטונית מוחלטת: אינו דורש ספריות דחיסה כלל לקריאה, כתיבה או מניפולציה.
- מצב ASCII (P3) מאפשר למתכנתים לצפות, להעתיק ולערוך ערכי צבע RGB גולמיים ישירות בעורך טקסט.
- פורמט ביניים סטנדרטי המשמש בקורסי מדעי המחשב במוסדות אקדמיים ובפרויקטים של מחשוב קרניים (raytracer).
מגבלות טכניות וחסרונות
- גדלי קבצים עצומים עקב היעדר דחיסה (תמונת 4K שוקלת כ-25 מגה-בייט).
- לא יעיל להפצה באינטרנט או להעברה ברשת.
- אין תמיכה בשקיפות אלפא או בפרופילי צבע מוטמעים.
עובדות טכניות מעניינות
- כמעט כל סטודנט למדעי המחשב שכותב תוכנת מעקב קרניים מייצא את הרינדורים הראשונים שלו בפורמט PPM.
- ב-ASCII PPM (המכונה 'P3'), תמונה היא מילולית קובץ טקסט של מספרים: '255 0 0' עבור אדום, '0 255 0' עבור ירוק, ו-'0 0 255' עבור כחול.
- חבילת Netpbm הופצה במקור במהדורות הקלטת של 4.3BSD Unix בסוף שנות ה-80.
שאלות טכניות נפוצות
מדוע קורסים במדעי המחשב משתמשים ב-PPM?
משום ש-PPM דורש אפס ספריות חיצוניות או אלגוריתמי דחיסה מורכבים, מה שמאפשר לתלמידים ללמוד עקרונות גרפיקה ממוחשבת באמצעות מתמטיקת פיקסלים גולמית טהורה.
מה ההבדל בין PPM מסוג P3 לבין P6?
P3 מאחסן שלשות RGB כמספרי טקסט ASCII רגילים, בעוד ש-P6 מאחסן שלשות RGB כבייטים בינאריים גולמיים.
כיצד אוכל להמיר קובץ PPM ל-JPG או ל-PNG?
תוכל להמיר קובצי PPM ל-PNG או ל-JPG ישירות בדפדפן שלך באמצעות File2File.app עם אפס נתונים שעוזבים את המכשיר שלך.