תמונת BMP (.bmp)
ארכיטקטורת תקןBitmap Image File (BMP) הוא פורמט הגרפיקה הרסטרית הבסיסי הבלתי-תלוי בהתקן של מיקרוסופט, המאחסן שורות סריקה לא דחוסות או דחוסות בשיטת RLE עם תאימות ישירה לפריים-באפר של חומרה.
המר BMP ל-PNG
ממיר חינמי מ-BMP ל-PNG פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי BMP על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי BMP על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
42 4Dייצוג ASCII: BM
תקינה: ארכיטקטורת DIB (מפת סיביות בלתי תלויה בהתקן) של Microsoft Windows
מפרט טכני
| מבנה המכולה | BITMAPFILEHEADER ואחריו BITMAPINFOHEADER (DIB) ומערך פיקסלים של תמונת הרסטר |
| דחיסה | שורות סריקה גולמיות ללא דחיסה, או קידוד RLE אופציונלי מסוג BI_RLE8 / BI_RLE4 |
| סדר בתים (Endianness) | סדר בתים Little-Endian (Intel x86) |
| מרחבי צבע | RGB התלוי בהתקן, sRGB (מוטמע ב-BITMAPV5HEADER) |
| ערוצים ומבנה | מונוכרום של 1 סיבית, צבעים ממופתחים של 4 או 8 סיביות, או RGB/RGBA של 16, 24 או 32 סיביות |
| ממדים מרביים | 2,147,483,647 x 2,147,483,647 פיקסלים (מספר שלם מסומן של 32 סיביות) |
| שקיפות | מסכת אלפא BGRA של 32 סיביות נתמכת בפורמטים מודרניים של BITMAPV3HEADER ו-V5HEADER |
| הזרמה ופרוגרסיביות | אינו ניתן להזרמה; שורות הסריקה נשמרות הפוכות (מלמטה למעלה), אלא אם הגובה שלילי |
מטריצת השוואה טכנית: BMP מול מתחרים
| תכונה טכנית | BMP (נוכחי) | PNG | TIFF | JPG |
|---|---|---|---|---|
| מצב דחיסה | לא דחוס / RLE מינימלי | דחיסת Deflate ללא אובדן; החיסכון בגודל משתנה לפי תוכן התמונה | לא דחוס / LZW / Zip | דחיסת DCT עם אובדן (קטן בכ-90%) |
| מהירות פענוח | העתקת זיכרון מיידית | דורש פענוח Deflate | דורש פענוח LZW/ZIP | דורש חישוב IDCT |
| סדר שורות הסריקה | מלמטה למעלה (הפוך) | מלמעלה למטה | מלמעלה למטה / רצועות | בלוקי MCU מלמעלה למטה |
| התאמה לרשת | גרועה מאוד (מטענים מנופחים) | מעולה לגרפיקה | גרועה (הוצאה לאור שולחנית) | מעולה לצילום |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
התמונה מרונדרת כשהיא גזורה באלכסון או מוטה בזווית.
גורם שורש: חישוב ריפוד שורות שגוי (כשל בריפוד כל שורת סריקה לגבול של 4 בייט).
שחזור: קידוד מחדש באמצעות File2File.app Image Converter לאכיפת מרווח שורות סריקה תקני של 32 סיביות.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
מפענחי BMP סובלים לעיתים קרובות מקריאות יתר של חוצץ בעת הקצאת זיכרון בהתבסס על מימדי כותרת DIB בלתי מהימנים.
ווקטורי תקיפה ידועים
- חריגת מספר שלם בחישוב רוחב * גובה * bpp, המובילה להקצאת זיכרון קטנה בערימה ולכתיבה מחוץ לגבולות הזיכרון.
- רצפי בריחה של מקטעי אורך ריצה RLE8/RLE4 פגומים הגורמים לכתיבות זיכרון מעבר לחוצץ שהוקצה.
- מניעת שירות באמצעות הקצאת זיכרון בגודל של מספר ג'יגה-בייט שמופעלת על ידי ממדי כותרת מעוותים.
שיטות מומלצות להגנה: יש לאמת בקפדנות את גבולות הרוחב, הגובה ועומק הסיביות בכותרת DIB לפני הקצאת זיכרון ליעד.
היסטוריה ואבני דרך
יתרונות מרכזיים
- אפס פגיעה בדחיסה: אחסון פיקסלים מדויק בסיביות (bit-exact) של 100% ללא ארטיפקטי דחיסה כלל.
- ב-Windows קיים מקודד BMP מובנה, אך התמיכה במערכות הפעלה וביישומים אחרים משתנה.
- מורכבות פענוח זניחה הופכת אותו לאידיאלי עבור מיקרו-בקרים משובצים (embedded microcontrollers) ולהוראת תכנות גרפיקה.
מגבלות טכניות וחסרונות
- גדלי קבצים עצומים עקב היעדר דחיסת אנטרופיה מודרנית כמו DEFLATE או קידוד Huffman.
- לא יעיל להעברה באינטרנט או להפצה ברשתות סלולריות.
- סדר שורות סריקה מלמטה למעלה דורש היפוך שורות אנכי בצינורות עיבוד גרפיים מודרניים מלמעלה למטה.
עובדות טכניות מעניינות
- קובצי BMP מאחסנים שורות סריקה של תמונה מהתחתית למעלה (מלמטה למעלה) כברירת מחדל בשל מערכת הצירים הקרטזית המתמטית שבה השתמשו ב-OS/2.
- אם ערך הגובה בכותרת ה-BMP מוגדר למספר שלילי, התמונה מפוענחת בכיוון הנכון (מלמעלה למטה).
- כל שורת סריקה בקובץ BMP חייבת להיות מרופדת באפסים לכפול של 4 בייט (יישור גבול של 32 סיביות).
שאלות טכניות נפוצות
מדוע קובצי BMP כל כך גדולים?
קובצי BMP שומרים ערכי צבע גולמיים ולא דחוסים עבור כל פיקסל בודד, בעוד שפורמטים כמו PNG דוחסים נתונים אלו מבלי לאבד שום איכות.
האם BMP תומך בשקיפות?
כן. קובצי BMP בגודל 32 סיביות (המשתמשים ב-BITMAPV3HEADER או חדשים יותר) יכולים לאחסן ערוץ אלפא בן 8 סיביות, אם כי התמיכה משתנה בתוכנות ישנות יותר.
כיצד אוכל להקטין את גודל קובץ ה-BMP?
המרת BMP ל-PNG עשויה להקטין את גודל הקובץ תוך שמירה על ערכי הפיקסלים, אך התוצאה תלויה בתוכן התמונה ובקידוד של קובץ ה-BMP.
זוגות המרה קשורים ל-BMP
המרת קבצי מפת סיביות לא דחוסים של Windows לפורמט PNG מספקת דחיסה ללא איבוד איכות המקטינה את נפח הקבצים מבלי לפגוע באיכות התמונה.
המרת גרפיקת רשת ניידת (PNG) למפת סיביות של Windows הופכת נתוני רסטר דחוסים לרשת פיקסלים לא דחוסה עבור מערכות הפעלה וחומרה ישנות.
הצג צילום מסך נתמך של BMP בעמוד PDF יחיד עבור כרטיס קריאה או דוח. נתיב זה מקבל פיקסלים לא דחוסים של 24 סיביות או 32 סיביות, ולא גרסאות BMP דחוסות.