BMP

صيغة BMP — بنية ملفات صور ويندوز النقطية واستخداماتها

بنية ملف BMP صيغة الصور النقطية الافتراضية في ويندوز (ترويسة الملف وترويسة المعلومات وجدول الألوان ومصفوفة البكسلات)، وسبب كبر حجمها لغياب الضغط تقريبًا، والحفظ من الأسفل إلى الأعلى وقاعدة حشو الصفوف، ومتى ما زلنا نحتاجها.

الامتداد.bmp (.dib)
MIMEimage/bmp
المواصفةوثائق Microsoft (لا يوجد معيار دولي رسمي)
الضغطغير مضغوطة غالبًا (RLE اختياري)
الشفافيةمحدودة (ألفا معرّفة في ترويسات V4 وV5 بعمق 32 بت)
الحركةلا
عمق اللون1 أو 4 أو 8 أو 16 أو 24 أو 32 بت لكل بكسل

BMP صيغة لحفظ الصورة النقطية المستقلة عن الجهاز (DIB) المستخدمة في ويندوز من Microsoft وفي OS/2 كملف. ليست مواصفة وضعتها هيئة معايير دولية، بل تؤدي وثائق التطوير من Microsoft دور المواصفة الفعلية. أبرز ما يميزها بساطة البنية، فيسهل على أي برنامج قراءتها وكتابتها.

بنية الملف

وفق وثيقة «Bitmap Storage» في Microsoft Learn يتكون ملف BMP بالترتيب التالي.

الترتيبالمكوّنالمحتوى
1BITMAPFILEHEADERمعرّف الملف (BM)، وحجم الملف، وموضع بداية بيانات البكسلات
2BITMAPINFOHEADER (أو ترويسة V4 وV5)العرض والارتفاع بالبكسل، وعدد البتات لكل بكسل، وطريقة الضغط، والدقة
3جدول الألوان (مصفوفة RGBQUAD)يُستخدم في صور 1 و4 و8 بت ذات لوحة الألوان
4مصفوفة البكسلاتبيانات الصورة الفعلية

أول بايتين في الملف هما BM بترميز ASCII (بالست عشري 42 4D)، لذا يمكن التأكد من أن الملف BMP بهذا التوقيع حتى لو تغيّر امتداده. وفي ترويسة المعلومات خانة أيضًا لدقة الطباعة (عدد البكسلات لكل متر).

الحفظ من الأسفل إلى الأعلى

يحفظ ملف BMP المعتاد البكسلات من الصف السفلي إلى الصف العلوي (bottom-up). وإذا كانت قيمة الارتفاع في الترويسة سالبة فالحفظ من الأعلى إلى الأسفل (top-down). كما يُضاف في نهاية كل صف بايتات حشو ليصبح عدد بايتاته من مضاعفات 4. وهذا موضع أخطاء شائعة عند كتابة برنامج يفسّر BMP بنفسه.

مثال على حساب حجم الصف

يجب أن يُحاذى كل صف في BMP بوحدات 4 بايت. إذا كان عرض صورة 24 بت يساوي 101 بكسل فإن البيانات الفعلية للصف 101 × 3 = 303 بايت، ويُضاف بايت واحد لتصبح من مضاعفات 4 فيُحفظ الصف في 304 بايت. لذا فإن الحجم الكلي لبيانات البكسلات هو (عدد بايتات الصف) × الارتفاع بالبكسل، وبإضافة الترويسة (54 بايت عادةً) نحصل على حجم الملف. وبسبب هذه القاعدة كثيرًا ما يظهر خطأ انزياح كل سطر عند التعامل المباشر مع صور عرضها ليس من مضاعفات 4.

لماذا الحجم كبير

تحفظ BMP في الغالب البكسلات الخام دون ضغط. في BMP بعمق 24 بت يأخذ كل بكسل 3 بايت، فتبلغ صورة 1920×1080 نحو 6.2MB، وصورة هاتف 4032×3024 نحو 36.6MB. يمكن اختيار ضغط RLE (ترميز طول التتابع) للصور ذات اللوحة بعمق 8 بت أو أقل، لكن أثره على الصور الفوتوغرافية ضئيل. وتنصح MDN أيضًا بتجنب BMP في محتوى الويب بسبب حجمها.

الشفافية

لا تحتوي BMP التقليدية بعمق 24 بت على قناة ألفا. يمكن لـ BMP بعمق 32 بت التي تستخدم ترويسات V4 وV5 تعريف قناع ألفا، لكن كثيرًا من البرامج لا تفسّره شفافيةً بشكل صحيح، لذا فإن PNG أكثر أمانًا لتبادل الصور الشفافة.

متى ما زالت BMP مستخدمة

  • عندما تقبل المعدات الصناعية القديمة أو الأجهزة المدمجة أو طابعات الإيصالات أو بعض البرامج الداخلية في الشركات صيغة BMP فقط
  • البرامج البسيطة أو الأمثلة التعليمية التي تحتاج إلى التعامل مع البكسلات مباشرة دون ضغط وفك ضغط
  • طريقة حفظ الصور الصغيرة داخل أيقونات ويندوز (ICO)

تنبيهات عند التحويل

  • BMP → PNG: دون فقد مع تقليص كبير في الحجم. أفضل تحويل للأرشفة والمشاركة.
  • BMP → JPG: في الصور الفوتوغرافية يصغر الحجم عشرات المرات لكن يُطبَّق ضغط فاقد.
  • صيغة أخرى → BMP: تحقّق من عدد البتات الذي يتطلبه الجهاز (24 بت أو 8 بت). تُملأ المناطق الشفافة بلون الخلفية. يمكنك الحفظ بصيغة BMP من أداة تحويل صيغ الصور.

تاريخ المراجعة: 2026-09-23

المصادر

← العودة إلى دليل الصيغ