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

תקן תקן

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

בדיקה ומטא-נתונים

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

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

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

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

חתימת כותרת ברמת הבייט (Magic Bytes)

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

חתימת HEX (היסט 0):

50 33 / 50 36

ייצוג ASCII: P3 / P6

תקינה: תקן ספריית Netpbm

מפרט טכני

מבנה המכולהפורמט Netpbm בטקסט ASCII ‏(P3) או בינארי ‏(P6), עם רוחב, גובה, ערך צבע מרבי וזרם של שלשות RGB
דחיסהבייטים בינאריים גולמיים או שלשות מספרים בטקסט ASCII קריא לאדם, ללא דחיסה
סדר בתים (Endianness)Big-Endian (לדגימות של 16 סיביות לערוץ בתמונת 48 סיביות במצב P6)
מרחבי צבעRGB ליניארי או sRGB תקני
ערוצים ומבנהשלושה ערוצי RGB (צבע אמיתי של 24 או 48 סיביות)
ממדים מרבייםמגבלות מעשיות כמעט שאינן קיימות (תומך במרחב קואורדינטות שרירותי של 64 סיביות)
שקיפותללא (PPM תקני הוא RGB אטום לחלוטין)
הזרמה ופרוגרסיביותהפעלה רציפה בהזרמה, שורה אחר שורה

מטריצת השוואה טכנית: 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*
דחיסהלא דחוסלא דחוס / RLEדחיסת Deflate ללא אובדן; החיסכון בגודל משתנה לפי תוכן התמונהLZW / Deflate / Zip

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

התמונה מוצגת עם היסט אלכסוני בין ערוצי הצבע.

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

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

ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (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 מלא-הצבעים.

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

  • קל לכתוב כותרת ודגימות פיקסלים של PPM מתוכנת גרפיקה. אם נדרש לנתח את שתי הגרסאות, ASCII ובינארית, או לטפל בבטחה בקבצים פגומים, השתמש בספרייה.
  • מצב ASCII‏ (P3) מאפשר למתכנתים לצפות, להעתיק ולערוך ערכי צבע RGB גולמיים ישירות בעורך טקסט.
  • PPM משמש כפורמט ביניים או פלט פשוט בחלק מקורסי הגרפיקה הממוחשבת ובדוגמאות של תוכנות raytracing.

מגבלות טכניות וחסרונות

  • תמונות P6 לא דחוסות של 8 סיביות עשויות להיות גדולות; תמונת RGB בגודל 3840 x 2160 משתמשת בכ-24.9 מיליון בתים לנתוני הפיקסלים, לפני הכותרת.
  • לא יעיל להפצה באינטרנט או להעברה ברשת.
  • אין תמיכה בשקיפות אלפא או בפרופילי צבע מוטמעים.

עובדות טכניות מעניינות

  • בחלק מדוגמאות המבוא לתוכנות raytracing משתמשים ב-PPM כפלט, כי פשוט לכתוב את נתוני הפיקסלים שלו.
  • ב-ASCII PPM (המכונה 'P3'), תמונה היא מילולית קובץ טקסט של מספרים: '255 0 0' עבור אדום, '0 255 0' עבור ירוק, ו-'0 0 255' עבור כחול.
  • חבילת Netpbm הופצה במקור במהדורות הקלטת של 4.3BSD Unix בסוף שנות ה-80.

שאלות טכניות נפוצות

מדוע קורסים במדעי המחשב משתמשים ב-PPM?

PPM מאחסן דגימות פיקסלים של RGB עם כותרת קצרה, ולכן תוכנת רינדור קרניים יכולה לכתוב תמונה בלי מקודד מורכב. עם זאת, יישומים צריכים לטפל בגרסאות הטקסט P3 והבינארית P6 ובכללי עומק הדגימה שלהן.

מה ההבדל בין PPM מסוג P3 לבין P6?

P3 מאחסן שלשות RGB כמספרי טקסט ASCII רגילים, בעוד ש-P6 מאחסן שלשות RGB כבייטים בינאריים גולמיים.

כיצד אוכל להמיר קובץ PPM ל-JPG או ל-PNG?

תוכל להמיר קובצי PPM ל-PNG או ל-JPG ישירות בדפדפן שלך באמצעות File2File.app, מבלי שנתונים יעזבו את המכשיר שלך.