محوّل Base64 إلى BMP

احفظ بيانات الصور النقطية بترميز Base64 كملف .bmp، أو حوّل أي صورة Base64 يستطيع متصفحك عرضها إلى BMP غير مضغوط بعمق 32 بت لبرامج Windows القديمة والأدوات المدمجة.

تعمل بالكامل داخل متصفحك، ولا يُرفع أي شيء.

طريقة الاستخدام

  1. الصق سلسلة Base64 أو عنوان data:image/bmp;base64. وتُقبل أيضًا صيغ PNG وJPEG وWebP وغيرها.
  2. راجع المعاينة والأبعاد والحجم بعد فك الترميز.
  3. صيغة BMP محددة مسبقًا في «تنزيل بصيغة». واختر «الملف الأصلي» بدلًا منها إذا كانت البيانات بصيغة BMP أصلًا وتريدها دون تغيير.
  4. نزّل ملف .bmp.

التعرّف على صورة Bitmap في Base64

تبدأ ملفات Windows bitmap بالحرفين BM، اللذين يُرمَّزان إلى Qk في بداية سلسلة Base64 تمامًا. وتخزّن الترويسة التي تليهما حجم الملف وموضع بيانات البكسل والأبعاد وعمق البت. وتظهر بيانات BMP في تطبيقات Windows القديمة، وعمليات التصدير من الحافظة ولقطات الشاشة، وأنظمة نقاط البيع والأنظمة الصناعية، وأدوات شاشات المتحكمات الدقيقة، وبيانات الاختبار الجاهزة. ويكون نوع MIME عادةً image/bmp، وإن كان image/x-ms-bmp يظهر أيضًا.

تعرض المتصفحات أنواع BMP الشائعة، لكن صور OS/2 النقطية القديمة جدًا وأنماط الضغط النادرة قد لا تُعرض في كل المتصفحات. فإذا بقيت المعاينة فارغة رغم أن السلسلة تبدأ بـ Qk، فنزّلها باختيار «الملف الأصلي» وافتحها في عارض صور على سطح المكتب.

لماذا تكون ملفات BMP كبيرة إلى هذا الحد

يكتب المحوّل وحدات بكسل غير مضغوطة بعمق 32 بت، أي أربعة بايتات لكل بكسل، لذا يعتمد حجم الملف على الأبعاد فقط لا على المحتوى:

الأبعادحجم BMPبترميز Base64
640 × 480نحو 1.2 ميغابايتنحو 1.6 ميغابايت
1920 × 1080نحو 8.3 ميغابايتنحو 11 ميغابايت
3840 × 2160نحو 33 ميغابايتنحو 44 ميغابايت

غالبًا ما تكون لقطة الشاشة نفسها بصيغة PNG أصغر بعشر مرات. لذا لا تستخدم BMP إلا إذا كان البرنامج المستقبِل يتطلبها.

حول المخرجات بعمق 32 بت

تحتفظ المخرجات بقناة ألفا، لذا تبقى المناطق الشفافة شفافة في البرامج التي تقرأ هذه القناة. وتتجاهل بعض البرامج القديمة قناة ألفا وقد تعرض تلك المناطق باللون الأسود أو الأبيض. فإن حدث ذلك، فأزل الشفافية من الصورة المصدر قبل التحويل.

ولفك ترميز صورة BMP بترميز Base64 على Windows دون متصفح، يكفي PowerShell:

$b64 = Get-Content .\image.txt -Raw
[IO.File]::WriteAllBytes("$PWD\image.bmp", [Convert]::FromBase64String($b64))

الأسئلة الشائعة

لماذا يكون ملف BMP أكبر بكثير من الأصل؟

مخرجات BMP غير مضغوطة وتستخدم أربعة بايتات لكل بكسل. أما ملف PNG أو JPEG مضغوط للصورة نفسها فيكون عادةً أصغر بكثير.

هل تدعم BMP الشفافية؟

نعم، تتضمن ملفات BMP بعمق 32 بت التي تنشئها هذه الأداة قناة ألفا. أما ظهور الشفافية فيعتمد على البرنامج الذي يفتح الملف.

كيف أعرف أن سلسلة Base64 هي صورة BMP؟
تبدأ بيانات BMP بـ Qk، وهو تمثيل Base64 للحرفين BM. وتتأكد الأداة من الصيغة بقراءة بايتات الترويسة.
هل يمكنني تحويل BMP إلى Base64 مرة أخرى؟
نعم، باستخدام تحويل BMP إلى Base64. وفكّر في التحويل إلى PNG أولًا، لأن سلسلة Base64 لصورة نقطية غير مضغوطة قد تكون طويلة جدًا.