מפת פיקסלים ניידת (.ppm)

Netpbm תקן

פורמט הפיקסל-מפ ص (Portable Pixmap Format - PPM) הוא תקן ה-RGB מלא-הצבעים של משפחת גרפיקת Netpbm, המספק את הייצוג הלא-דחוס הפשוט ביותר האפשרי של תמונות דיגיטליות בצבע אמיתי (Truecolor).

בדיקה ומטא-דאטה

מערכות הפעלה ומנתחי קבצים מזהים קבצי PPM על ידי בדיקת רצף הבייטים הבינארי הראשוני:

בחר או גרור קבצים לכאן

המרה פרטית ב-100% בתוך הדפדפן - הקבצים לעולם אינם עוזבים את המכשיר שלך

או הדבק Ctrl+V
הבטחת פרטיות ללא העברה ברשת: 0 בייט הועלו לשרתים חיצוניים. כל העיבוד מתבצע באופן מקומי בארגז החול של הדפדפן שלך.

חתימת כותרת ברמת הבייט (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 (נוכחי)BMPPNGTIFF
עומק צבע24-bit / 48-bit RGB Truecolor1-bit to 32-bit RGBA24-bit / 48-bit RGBA8-bit to 64-bit RGBA
בן משפחת NetpbmPPM (Portable Pixmap)פורמט שאינו Netpbmפורמט W3C שאינו Netpbmפורמט Adobe שאינו Netpbm
בתֵי קסם (Magic Bytes)P3 (ASCII) / P6 (בינארי)BM (0x42 0x4D)‰PNG....II*\0 or MM\0*
דחיסהלא דחוסלא דחוס / RLEDeflate ללא אובדן נתונים (קטן בכ-70%)LZW / Deflate / Zip

מצבי שיחשות נפוצים ומדריך שחזור הקסדצימלי (Hex)

התמונה מרונדרת עם מריחה אלכסונית של ערוצי צבע.

גורם שורש: בית קטום ברצף שלישיות ה-RGB, מה שגורם לחוסר יישור בבתֵי האדום, הירוק והכחול העוקבים.

התאוששות: כוונון מחדש של היסט שלישיות ה-RGB או המרה באמצעות ממיר Netpbm של File2File.

ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)

מפענחי PPM חייבים להגן מפני גלישת מספר שלם (integer overflow) בעת חישוב גדלי מאגר שלישיות ה-RGB בגודל 3 בתים.

ווקטורי תקיפה ידועים

  • גלישת מספר שלם במהלך הקצאת מאגר בגודל width * height * 3.
  • קריאת יתר ממאגר (buffer over-read) בעת קריאת אסימוני ASCII פגומים במצב P3.
  • מניעת שירות עקב הקצאות זיכרון מוגזמות המוגדרות בהצהרות.

השיטות המומלצות להגנה:

היסטוריה ואבני דרך

2000עומק צבע של 48 סיביות (16 סיביות לכל ערוץ) נוסף למפרט Netpbm P6.
1993הופך לשפה משותפת אוניברסלית עבור צינורות המרת גרפיקה ב-Unix בערכת הכלים Netpbm.
1989ג'ף פוסקאנצר משלים את השילוש של Netpbm (PBM, PGM, PPM) עם פורמט ה-PPM מלא-הצבעים.

יתרונות מרכזיים

  • פשטות ארכיטקטונית מוחלטת: אינו דורש ספריות דחיסה כלל לקריאה, כתיבה או מניפולציה.
  • מצב 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 עם אפס נתונים שעוזבים את המכשיר שלך.