ZSoft PCX (.pcx)
מדריך תקןמפת הסיביות ZSoft PC Paintbrush (PCX) היא פורמט גרפי ותיק למחשבים אישיים, שהיה לתקן תמונות הרסטר הראשון שאומץ בהיקף רחב עבור MS-DOS, מחשבים תואמי IBM PC ומשחקי מחשב קלאסיים.
המר PCX ל-PNG
ממיר חינמי מ-PCX ל-PNG פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי PCX על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי PCX על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
0A 05 01ייצוג ASCII: ...
תקינה: מדריך העזר הטכני של ZSoft PC Paintbrush
מפרט טכני
| מבנה המכולה | כותרת קבועה של 128 בתים, ואחריה שורות סריקה בדחיסת RLE ופלטה אופציונלית של 256 צבעים בסוף הקובץ |
| דחיסה | קידוד אורכי ריצה (RLE) לפי בתים, עם סיביות חיווי של ספירה 0xC0 |
| סדר בתים (Endianness) | סדר בתים Little-Endian (Intel x86) |
| מרחבי צבע | RGB עם פלטה של 4 צבעים ב-CGA, 16 צבעים ב-EGA או 256 צבעים ב-VGA |
| ערוצים ומבנה | פלטה של 1, 2, 4 או 8 סיביות, או RGB מישורי של 24 סיביות (3 מישורים של נתונים בני 8 סיביות) |
| ממדים מרביים | 65,535 x 65,535 פיקסלים (קואורדינטות של 16 סיביות) |
| שקיפות | ללא (תמונת רסטר ישנה ואטומה) |
| הזרמה ופרוגרסיביות | הפעלה רציפה בהזרמה, שורה אחר שורה |
מטריצת השוואה טכנית: PCX מול מתחרים
| תכונה טכנית | PCX (נוכחי) | BMP | GIF | PNG |
|---|---|---|---|---|
| תקופה פעילה | 1985 - 1995 (תור הזהב של MS-DOS) | 1990 - היום (תקן Windows) | 1987 - היום (תקן רשת) | 1996 - היום (תקן רשת מודרני) |
| אלגוריתם הדחיסה | דחיסת RLE מסוג Byte-run | ללא דחיסה / RLE | דחיסה ללא פטנט מסוג LZW | דחיסת Deflate LZ77 |
| ארכיטקטורת הצבע | מישורי סיביות EGA/VGA ומבוסס פלטה | שורות סריקה DIB | 256 צבעים ממופתים (Indexed) | צבע אמיתי 24/48-bit + אלפא |
| מיקום הפלטה | מצורף בסוף הקובץ EOF (768 בתים) | בקרבת כותרת הקובץ | בקרבת כותרת הקובץ | מקטע PLTE משובץ |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
צבעי התמונה מוצגים הפוכים לחלוטין או מעוותים כמו תשליל פסיכדלי.
גורם שורש: בלוק פלטת VGA של 256 צבעים חסר או מקוצץ בסוף הקובץ.
שחזור: החילו מחדש את פלטת ה-VGA ברירת המחדל או בצעו המרה ל-PNG באמצעות ממיר ה-PCX של File2File.app.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
מפענחי PCX מעבדים בתים דחוסים באורכי ריצה (Run-length) לשורות סריקה שבהן ספירות ריצה פגומות עלולות לגרום לגלישות חוצץ בזיכרון ה-Heap.
ווקטורי תקיפה ידועים
- ריצת בית RLE החורגת מרוחב שורת הסריקה וגורמת לכתיבת זיכרון מעבר לגבולות החוצץ.
- גלישת חוצץ בעת קריאת מישורים מעבר למספר המישורים המוצהר בכותרת.
- מניעת שירות (DoS) באמצעות חישובי היסט פלטה מושחתים.
שיטות מומלצות להגנה: אכוף מגבלות קפדניות על מספר בייטי הפיקסלים בכל שורת סריקה במהלך לולאות פריסת RLE.
היסטוריה ואבני דרך
יתרונות מרכזיים
- חשיבות היסטורית עשירה: הפורמט הבסיסי של מהפכת המשחקים המוקדמת למחשבי IBM PC ותוכנות השיתופיות.
- מבנה זיכרון שטוח המכוון לחומרה מאפשר העתקה ישירה לזיכרון כרטיס המסך EGA/VGA.
- דחיסת RLE קלת משקל מפחיתה את גודלי הקבצים של איורים ודיאגרמות בעלי מספר צבעים נמוך.
מגבלות טכניות וחסרונות
- PCX אינו נפוץ כיום בתהליכי עבודה רבים, שבהם מעדיפים לרוב PNG ופורמטים חדשים יותר של רסטר.
- פלטת 256 הצבעים של VGA מצורפת ממש בסוף הקובץ, מה שמחייב קריאה מלאה של הקובץ כדי לפענח את הצבעים.
- דחיסה לא יעילה על גבי תצלומי צבע מורכבים.
עובדות טכניות מעניינות
- הבית הראשון בכל קובץ PCX הוא תמיד 0x0A (עשרוני 10), המייצג את מזהה היצרן הפנימי של ZSoft.
- כדי לבדוק אם לקובץ PCX בעל 8-bit יש פלטת 256 צבעים, ניגשים למיקום של 769 בתים מהסוף של הקובץ ובודקים האם הבית הוא 0x0C (עשרוני 12).
- משחקי מחשב קלאסיים הכוללים את Wolfenstein 3D, DOOM ו-Duke Nukem 3D אחסנו את צילומי המסך הפרסומיים ואמנות התפריטים שלהם בפורמט PCX.
שאלות טכניות נפוצות
איזו תוכנה יצרה קובצי .PCX?
ZSoft PC Paintbrush, תוכנת הגרפיקה הפופולרית הראשונה ל-IBM PC בשנות ה-80, שנמכרה לעיתים קרובות כחבילה עם עכברים של Microsoft.
האם אני יכול להמיר קובץ PCX ישן ל-PNG או ל-JPG?
כן. File2File.app יכול להמיר מרקמי משחקים היסטוריים ויצירות אמנות מסוג PCX לתמונות PNG או JPG מודרניות וחדות ישירות בדפדפן שלך.
מדוע לוח הצבעים (palette) נמצא בסוף קובץ PCX?
כאשר הוצג תקן ה-VGA בעל 256 הצבעים בשנת 1988, ZSoft צירפה את פלטת ה-RGB בגודל 768 בייט לסוף הקובץ כשהיא מלווה בסמן 0x0C כדי לשמור על תאימות לאחור עם מפענחי 16 צבעים ישנים יותר.