.BMP Bitmap Image
.bmp

Bitmap Image

ملف BMP يُخزّن بيانات البكسل الخام بدون ضغط مع ترويسة ملف بحجم 14 بايت تبدأ بالبايتات السحرية 42 4D. حوّل صور BMP إلى PNG أو JPG أو WebP أو GIF في متصفحك مع FileDex — واجهة Canvas API تفك ترميز الصورة محلياً وتعيد ترميزها بصيغة مضغوطة بدون أي رفع للخادم.

بنية الصيغة
BM file header
DIB dimensions · bpp
Pixels uncompressed
بدون فقدانشفافيةبيانات وصفية1986
بواسطة FileDex

ملفاتك لا تغادر جهازك

أسئلة شائعة

لماذا ملفات BMP كبيرة جداً مقارنة بـ PNG أو JPG؟

BMP تُخزّن بيانات البكسل الخام بدون أي ضغط — كل بكسل يشغل 3 بايت (24 بت) أو 4 بايت (32 بت). صورة BMP بأبعاد 1920x1080 وعمق 24 بت حجمها بالضبط 6,220,854 بايت. نفس الصورة كـ PNG عادةً 500 كيلوبايت إلى 2 ميغابايت وكـ JPEG حوالي 200-500 كيلوبايت.

هل تحويل BMP إلى PNG يفقد أي جودة؟

لا. PNG تستخدم ضغط DEFLATE بدون فقدان، فكل بكسل في المخرجات مطابق رياضياً لمدخلات BMP. الملف أصغر لأن DEFLATE يزيل التكرار الإحصائي في تيار البايتات وليس المعلومات البصرية من الصورة.

ما الفرق بين BMP بعمق 24 بت و 32 بت؟

BMP 24 بت يخزّن 8 بت لكل من الأزرق والأخضر والأحمر لكل بكسل بترتيب BGR بدون شفافية. BMP 32 بت يضيف قناة ألفا 8 بت للشفافية لكل بكسل (BGRA). أيقونات تطبيقات Windows وعناصر الواجهة تستخدم BMP 32 بت للمناطق الشفافة.

لماذا تُخزّن BMP البكسلات من الأسفل للأعلى؟

ترتيب الصفوف الافتراضي يتوافق مع الاصطلاح الرياضي حيث نقطة الأصل (0,0) في الزاوية السفلية اليسرى. التصميم توافق مع عنونة مخازن إطارات CRT أيضاً. القيمة السالبة في حقل الارتفاع بترويسة DIB تعكس التخزين إلى أعلى-أسفل.

هل يمكن استخدام صور BMP على الويب؟

المتصفحات تعرض BMP في عناصر الصور، لكن لا يُنصح باستخدام BMP لمحتوى الويب. ملفات BMP أكبر بـ 5-20 ضعفاً من PNG لنفس الجودة. حوّل إلى PNG للجودة بدون فقدان أو WebP لأقصى ضغط قبل التقديم.

ما إصدارات ترويسة BMP المختلفة؟

خمسة إصدارات لترويسة DIB: BITMAPCOREHEADER بحجم 12 بايت (OS/2 عام 1988) وBITMAPINFOHEADER بحجم 40 بايت (Windows 3.0 عام 1990) وBITMAPV4HEADER بحجم 108 بايت وBITMAPV5HEADER بحجم 124 بايت. ترويسة 40 بايت مُستخدمة في حوالي 99% من ملفات BMP.

كيف أحوّل ملف BMP إلى صيغة أصغر؟

أسقط ملف BMP في FileDex واختر PNG (بدون فقدان وجودة متطابقة) أو JPG (مع فقدان والأصغر للصور الفوتوغرافية) أو WebP (أفضل ضغط للمتصفحات الحديثة). التحويل يتم بالكامل في متصفحك عبر Canvas API بدون رفع.

ما يميز .BMP

منذ 1986
أقدم من شبكة الإنترنت نفسها
شحنت Microsoft صيغة BMP مع Windows 1.0 عام 1986 — قبل خمس سنوات من نشر Tim Berners-Lee أول صفحة ويب. ترويسة الملف من 14 بايت ظلت متوافقة على مستوى البايت عبر 40 عاماً من إصدارات Windows.
بكسلات مقلوبة
الصفوف تُخزّن من الأسفل للأعلى
ترتيب الصفوف الافتراضي من الأسفل للأعلى يتوافق مع الاصطلاح الرياضي حيث (0,0) في الزاوية السفلية اليسرى. القيمة السالبة في حقل الارتفاع تعكس الترتيب إلى أعلى-أسفل.
حجم حتمي
1920x1080 بعمق 24 بت = 6,220,854 بايت بالضبط
بسبب تخزين البكسلات الخام بدون ضغط، حجم الملف دالة محضة للأبعاد وعمق البت. على عكس PNG أو JPEG حيث يتغير الحجم حسب محتوى الصورة، صورة BMP بأبعاد معينة تُنتج نفس العدد من البايتات دائماً.
BGR لا RGB
ترتيب بايتات البكسل: أزرق-أخضر-أحمر
تُخزّن BMP بكسلات 24 بت بترتيب BGR وليس RGB — نتيجة مباشرة لتخطيط ذاكرة x86 بترتيب little-endian. هذا يُفاجئ المبرمجين عند قراءة بيانات BMP بدون مكتبة متخصصة.

بيانات بكسل خام في أبسط غلاف ممكن — هذا هو جوهر صيغة BMP. صيغة Windows Bitmap قدّمتها Microsoft مع Windows 1.0 عام 1986 وعُرّفت رسمياً كمواصفة DIB (Device Independent Bitmap). تكتب قيم البكسل بالتتابع مع ترويسة بسيطة. لا خوارزمية ضغط، ولا بيانات فضاء لوني، ولا تصحيح جاما. صورة بأبعاد 1920x1080 وعمق 24 بت تُنتج ملف BMP بحجم 6,220,854 بايت في كل مرة بغض النظر عن محتوى الصورة.

اكتشف التفاصيل التقنية

تشريح الترويسة

كل ملف BMP يبدأ بترويستين متتاليتين.

BITMAPFILEHEADER (14 بايت): تبدأ بالبايت 0 بالتوقيع 0x42 0x4D — حرفا ASCII "BM" — متبوعاً بحجم الملف الكلي بـ 4 بايت بترتيب little-endian، ثم حقلان محجوزان (دائماً صفر)، وأخيراً إزاحة بيانات البكسل بـ 4 بايت. هذه الإزاحة تُخبر مفكك الترميز بعدد البايتات التي يتخطاها قبل بدء بيانات البكسل. لصورة 24 بت بدون جدول ألوان، الإزاحة هي 54 (14 + 40).

BITMAPINFOHEADER (40 بايت): أكثر إصدارات ترويسة DIB شيوعاً — يُستخدم في 99% من ملفات BMP تقريباً. يحتوي عرض وارتفاع الصورة كأعداد صحيحة 32 بت مع إشارة، وعمق البت (1 أو 4 أو 8 أو 16 أو 24 أو 32)، وثابت طريقة الضغط: 0 (BI_RGB) بدون ضغط، 1 (BI_RLE8) لترميز طول المتسلسلة 8 بت، 2 (BI_RLE4) لترميز 4 بت، و3 (BI_BITFIELDS) لأقنعة قنوات مخصصة.

توجد خمسة إصدارات مختلفة لترويسة DIB: BITMAPCOREHEADER بحجم 12 بايت (OS/2 عام 1988)، BITMAPINFOHEADER بحجم 40 بايت (Windows 3.0 عام 1990)، BITMAPV4HEADER بحجم 108 بايت (يضيف فضاء الألوان والجاما)، وBITMAPV5HEADER بحجم 124 بايت (يضيف ملفات تعريف ICC). حقل حجم الترويسة في الإزاحة 0x0E يُحدد الإصدار ذاتياً.

تخزين البكسلات وحشو الصفوف

تُخزّن BMP البكسلات بترتيب BGR وليس RGB — نتيجة مباشرة لتخطيط ذاكرة x86 بترتيب little-endian المُستخدم في وظائف Windows GDI. كل صف مسح يجب أن يُحشى إلى حد 4 بايت (DWORD). صيغة الحشو: (4 - (العرض × عدد_البايتات_لكل_بكسل) % 4) % 4. صورة بعرض 3 بكسل وعمق 24 بت تستخدم 9 بايتات بيانات لكل صف + 3 بايتات حشو = 12 بايت لكل صف.

الترتيب المقلوب للصفوف

السمة التقنية الأبرز في BMP هي ترتيب الصفوف من الأسفل للأعلى. أول صف بيانات بكسل في الملف يُقابل آخر سطر مسح في الصورة (الحافة السفلية). هذا التصميم يتوافق مع الاصطلاح الرياضي حيث نقطة الأصل (0,0) في الزاوية السفلية اليسرى. القيمة السالبة في حقل الارتفاع تعكس هذا السلوك وتُخزّن الصفوف من الأعلى للأسفل.

خصائص الأداء

غياب الضغط يجعل BMP أسرع صيغة صور في فك الترميز وأسوأها في التخزين في آن واحد. فك ترميز صورة 4K (3840x2160) بعمق 24 بت يتطلب قراءة 25 ميغابايت متتالية ونسخها للمخزن المؤقت — بلا فك ضغط ولا فك ترميز إنتروبي. على العتاد الحديث، العملية تكتمل في أقل من 5 ميلي ثانية.

PNG تضغط نفس الصورة إلى 8-15 ميغابايت بـ DEFLATE. JPEG تحقق 2-4 ميغابايت مع فقدان جودة محدود. WebP تصل إلى 1.5-3 ميغابايت. حجم BMP البالغ 25 ميغابايت هدر صرف للتوزيع.

أوضاع ضغط RLE

تدعم BMP وضعين لترميز طول المتسلسلة: BI_RLE8 للصور 8 بت وBI_RLE4 للصور 4 بت. الضغط فعّال للصور ذات المساحات اللونية الموحّدة — أيقونات النظام وخلفيات واجهة المستخدم. صورة 8 بت بلون موحّد بأبعاد 1920x1080 تنضغط من 2 ميغابايت إلى أقل من 10 كيلوبايت. لكن للصور الفوتوغرافية، يُنتج RLE ملفات أكبر أحياناً من النسخة غير المضغوطة.

BMP الإصدار 5 وملفات تعريف ICC

BITMAPV5HEADER المُقدّم مع Windows 98 أضاف القدرة على تضمين ملفات تعريف ICC للألوان مباشرة في ملف BMP. يحتوي حقولاً لنوع فضاء الألوان وقيم الجاما لكل قناة RGB وإزاحة وحجم ملف ICC المُضمّن. عملياً، لا يكاد أي برنامج يكتب BMP v5 مع ملفات تعريف ICC.

متى يكون BMP مناسباً

أربعة سيناريوهات تُبرر BMP في 2026. عمليات حافظة Windows: نسخ صورة للحافظة يُخزّنها كـ DIB داخلياً. الأنظمة المُدمجة التي لا تملك ميزانية معالج لفك الضغط. تعليم علوم الحاسب حيث بنية BMP الشفافة تجعلها صيغة تعليمية معيارية. وخطوط أنابيب التصوير العلمي التي تحتاج وصولاً مباشراً لبيانات البكسل.

لكل حالة أخرى، PNG (بدون فقدان، أصغر 5-20 ضعفاً) أو JPEG (مع فقدان، أصغر 12-30 ضعفاً للصور) أو WebP (متغير، أصغر 17-40 ضعفاً) خيارات أفضل. FileDex يحوّل BMP إلى أي من هذه الصيغ في المتصفح عبر Canvas API — يفك ترميز الصورة غير المضغوطة ويرسمها على لوحة ويعيد ترميزها بضغط الصيغة المستهدفة.

مقارنة .BMP مع البدائل

مقارنة .BMP مع الصيغ البديلة
المقارنة المعيار الفائز
.BMP vs .PNG
حجم الملف لنفس المحتوى بدون فقدان
ضغط DEFLATE في PNG يُنتج ملفات أصغر بـ 5-20 ضعفاً من BMP لنفس بيانات البكسل. BMP يُخزّن بكسلات خام غير مضغوطة مع حشو صفوف إضافي.
PNG أفضل
.BMP vs .TIFF
تخزين صور نقطية غير مضغوطة
كلاهما يدعم التخزين بدون ضغط، لكن TIFF يضيف مستندات متعددة الصفحات وألوان CMYK وعمق 16/32 بت وبيانات EXIF/XMP وضغط اختياري LZW/ZIP. BMP مقتصرة على صورة واحدة RGB/RGBA.
TIFF أفضل
.BMP vs .TGA
صيغة صور قديمة غير مضغوطة
كلاهما يخزّن بيانات بكسل خام مع ترويسات بسيطة. TGA يدعم الاتجاهين (أعلى-أسفل وأسفل-أعلى) وRLE اختياري مثل BMP. TGA سادت في تطوير الألعاب (عصر Truevision)، بينما BMP سادت في تطبيقات Windows.
تعادل
.BMP vs .PNG
سرعة فك الترميز
BMP لا يحتاج فك ضغط — نسخ بكسلات خام للمخزن المؤقت يكتمل في أقل من 5 ميلي ثانية لصور 4K. PNG يحتاج فك ضغط DEFLATE وعكس المرشّحات مما يضيف 10-30 ميلي ثانية.
BMP أفضل

المرجع التقني

نوع MIME
image/bmp
Magic Bytes
42 4D BM signature.
المطوّر
Microsoft
سنة التقديم
1986
معيار مفتوح
نعم
00000000424D BM

BM signature.

البنية الثنائية

تبدأ ملفات BMP بترويسة ملف من 14 بايت (التوقيع 42 4D وحجم الملف وحقلان محجوزان وإزاحة بيانات البكسل)، تليها ترويسة DIB التي تصف أبعاد الصورة وصيغة البكسل. ترويسة DIB الأكثر شيوعاً هي BITMAPINFOHEADER بحجم 40 بايت، وتحتوي العرض والارتفاع وعدد البتات وطريقة الضغط. جدول ألوان اختياري يلي الترويسة للصور المفهرسة (1/4/8 بت). بيانات البكسل تُخزّن من الأسفل للأعلى افتراضياً مع حشو كل صف إلى حد 4 بايت. ملفات BMP 32 بت تخزّن قناة ألفا في البايت الرابع لكل بكسل.

OffsetLengthFieldExampleDescription
0x00 2 بايت التوقيع 42 4D ASCII 'BM' — يُعرّف الملف كـ BMP. توقيعات أخرى (BA وCI وCP وIC وPT) لمتغيرات OS/2 لكنها نادرة جداً.
0x02 4 بايت حجم الملف 36 10 0E 00 حجم الملف الكلي بالبايت (uint32 بترتيب little-endian).
0x06 4 بايت محجوز 00 00 00 00 حقلان محجوزان 16 بت. يجب أن يكونا صفراً في BMP القياسي.
0x0A 4 بايت إزاحة بيانات البكسل 36 00 00 00 الإزاحة من بداية الملف إلى بداية بيانات البكسل. عادةً 54 لصور 24 بت (14 + 40 بايت ترويسة بدون جدول ألوان).
0x0E 4 بايت حجم ترويسة DIB 28 00 00 00 حجم ترويسة DIB بالبايت. 40 = BITMAPINFOHEADER، 108 = BITMAPV4HEADER، 124 = BITMAPV5HEADER.
0x12 4 بايت العرض 00 04 00 00 عرض الصورة بالبكسل (int32 مع إشارة بترتيب little-endian).
0x16 4 بايت الارتفاع 00 03 00 00 ارتفاع الصورة (int32 مع إشارة). موجب = صفوف من الأسفل للأعلى. سالب = من الأعلى للأسفل.
0x1A 2 بايت مستويات اللون 01 00 دائماً 1.
0x1C 2 بايت بت لكل بكسل 18 00 عمق اللون: 1 أو 4 أو 8 أو 16 أو 24 أو 32.
0x1E 4 بايت الضغط 00 00 00 00 0 = BI_RGB (بدون ضغط)، 1 = BI_RLE8، 2 = BI_RLE4، 3 = BI_BITFIELDS.
1986قُدّمت صيغة BMP مع Microsoft Windows 1.0 لتخزين الصور النقطية المستقلة عن الأجهزة1988IBM تُقدّم متغيرات BMP لنظام OS/2 مع BITMAPCOREHEADER (ترويسة DIB بحجم 12 بايت) وتوقيعات بديلة (BA و CI و CP)1990Windows 3.0 يُقدّم BITMAPINFOHEADER بحجم 40 بايت — بنية BMP القياسية المُستخدمة حتى اليوم1995BITMAPV4HEADER يضيف فضاء الألوان والجاما وسلوك قناة ألفا المُعرَّف مع Windows 951998BITMAPV5HEADER يمتد بملفات تعريف ألوان ICC المُضمّنة وهدف عرض sRGB (Windows 98)2003تسارع اعتماد PNG كمعيار ويب؛ استخدام BMP يتراجع خارج حافظة Windows والتطبيقات القديمة
تحويل BMP إلى PNG (بدون فقدان) imagemagick
magick convert input.bmp output.png

يفك ترميز BMP غير المضغوط ويرمّز إلى PNG بضغط DEFLATE بدون فقدان. الناتج مطابق بكسلياً. لقطة شاشة BMP بحجم 6 ميغابايت تُنتج عادةً PNG بحجم 300-800 كيلوبايت.

تحويل BMP إلى JPG مع التحكم بالجودة imagemagick
magick convert input.bmp -quality 90 output.jpg

يرمّز بيانات بكسل BMP إلى JPEG بجودة 90. المعامل يتحكم بكمّية DCT — القيم المنخفضة تُنتج ملفات أصغر مع تشوّهات كتلية أكثر. الجودة 85-92 هي النطاق المثالي للمحتوى الفوتوغرافي.

تحويل BMP إلى WebP (بدون فقدان) أخرى
cwebp -lossless input.bmp -o output.webp

يرمّز BMP إلى وضع WebP بدون فقدان (VP8L). يُنتج ملفات أصغر بحوالي 26% من PNG لنفس المحتوى وفقاً لدراسة Google المقارنة مع الحفاظ على كل بكسل.

فحص ترويسة BMP باستخدام FFprobe ffmpeg
ffprobe -v error -show_entries stream=width,height,pix_fmt,bits_per_raw_sample -of json input.bmp

يقرأ ترويسة DIB ويعرض أبعاد الصورة وصيغة البكسل (bgr24 أو bgra إلخ) وعمق البت بدون فك ترميز بيانات البكسل كاملة.

BMP PNG render lossless ضغط DEFLATE بدون فقدان في PNG يُنتج ملفات أصغر بـ 5-20 ضعفاً من BMP غير المضغوط مع الحفاظ على كل بكسل بتطابق تام ودعم كامل لشفافية ألفا للعرض على الويب.
BMP JPG render lossy ضغط JPEG DCT يُقلّص ملفات BMP الفوتوغرافية بمقدار 12-30 ضعفاً، مُنتجاً مخرجات بحجم 200-500 كيلوبايت من مدخلات بحجم 6 ميغابايت مع فقدان جودة طفيف بجودة 85-90.
BMP WEBP render variable WebP يوفر وضعاً بدون فقدان (أصغر بنسبة 26% من PNG وفقاً لدراسة Google) ووضعاً مع فقدان (أفضل من JPEG بنفس الجودة)، مما يُعظّم الضغط لتوزيع الويب الحديث.
BMP GIF render lossy مخرجات GIF تُكمّم صورة BMP إلى 256 لوناً مفهرسة كحد أقصى باستخدام ضغط LZW، مُنتجةً صورة ثابتة مناسبة للرسومات البسيطة والأيقونات وتوافق المنصات القديمة.
منخفض

نقاط الضعف

  • طفحان عدد صحيح في حقول العرض والارتفاع — أبعاد كبيرة جداً تسبب طفحان تخصيص ذاكرة في مفككات الترميز البسيطة
  • إزاحة بيانات بكسل مُصطنعة تشير خارج حدود الملف تسبب قراءة خارج الحدود
  • ملفات BMP مضغوطة بـ RLE بأطوال تسلسل مشوّهة تُشغّل طفحان مخزن في المحللات التي لا تتحقق من حجم البيانات المفكوكة

الحماية: FileDex يفك ترميز BMP بالكامل داخل صندوق حماية المتصفح عبر Canvas API. الأبعاد القصوى المفكوكة مقيّدة بحدود لوحة المتصفح (عادةً 16384×16384). لا يتم رفع أي بيانات للخادم. الترويسات المشوّهة تُرفض من مفكك BMP المدمج في المتصفح.

ImageMagick أداة
معالج صور سطر أوامر مع دعم كامل لقراءة وكتابة BMP بما في ذلك جميع إصدارات ترويسة DIB وضغط RLE
FFmpeg أداة
إطار عمل وسائط متعددة يفك ترميز BMP كمدخل فيديو ذو إطار واحد ويحوّل إلى أي صيغة صور أو فيديو
Pillow مكتبة
مكتبة معالجة صور Python مع دعم قراءة وكتابة BMP لجميع أعماق الألوان من 1 بت إلى 32 بت BGRA
sharp مكتبة
مكتبة معالجة صور عالية الأداء لـ Node.js مبنية على libvips مع دعم إدخال BMP للتحويل من جانب الخادم
GIMP أداة
محرر صور مفتوح المصدر مع استيراد/تصدير BMP أصلي بما في ذلك ألفا 32 بت وجميع أوضاع الضغط