بیت‌مپ ویندوز (.bmp)

Microsoft استاندارد

فایل تصویر بیت‌مپ (BMP) فرمت گرافیکی رستر مستقل از دستگاه بنیادی مایکروسافت است که خطوط اسکن بدون فشرده‌سازی یا فشرده‌شده با RLE را با سازگاری مستقیم با فریم‌بفر سخت‌افزاری ذخیره می‌کند.

تبدیل BMP به PNG

مبدل رایگان BMP به PNG درون مرورگر. فایل‌ها را فورا روی دستگاه خود تبدیل کنید.

بررسی و فراداده

سیستم‌عامل‌ها و تحلیلگرهای فایل، فایل‌های BMP را با بررسی توالی بایت‌های دودویی ابتدایی شناسایی می‌کنند:

انتخاب یا رها کردن فایل‌ها در اینجا

تبدیل ۱۰۰٪ خصوصی در مرورگر - فایل‌ها هرگز دستگاه شما را ترک نمی‌کنند

یا جای‌گذاری کنید Ctrl+V
تضمین حریم خصوصی بدون انتقال شبکه: صفر بایت به سرورهای خارجی آپلود می‌شود. تمام پردازش‌ها به صورت محلی در سندباکس مرورگر شما انجام شد.

امضای هدر در سطح بایت (Magic Bytes)

سیستم‌عامل‌ها و تحلیلگرهای فایل، فایل‌های BMP را با بررسی توالی بایت‌های دودویی ابتدایی شناسایی می‌کنند:

امضای HEX (آفست 0):

42 4D

نمایش ASCII: BM

استانداردسازی: Microsoft Windows Device-Independent Bitmap (DIB) Architecture

مشخصات فنی

معماری کانتینرBITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array
فشرده‌سازیUncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding
ترتیب بایت‌ها (Endianness)Little-Endian (Intel x86 byte order)
فضاهای رنگیDevice Dependent RGB, sRGB (BITMAPV5HEADER embedded)
کانال‌ها و ساختار1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA
حداکثر ابعاد2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer)
شفافیت مشخصات32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats
استریمینگ و پیش‌روندهNon-streamable; scanlines stored upside-down (bottom-up) unless height is negative

ماتریس مقایسه فنی: BMP در برابر رقبا

ویژگی فنیBMP (فعلی)PNGTIFFJPG
حالت فشرده‌سازیفشرده‌نشده / RLE حداقلDeflate بدون افت کیفیت (حدود ۷۰ درصد کوچک‌تر)فشرده‌نشده / LZW / ZipDCT با افت کیفیت (حدود ۹۰ درصد کوچک‌تر)
سرعت رمزگشاییکپی حافظه آنینیازمند باز کردن فشردگی Deflateنیازمند باز کردن فشردگی LZW/ZIPنیازمند محاسبه IDCT
ترتیب خط اسکناز پایین به بالا (معکوس)از بالا به پاییناز بالا به پایین / نواریبلوک‌های MCU از بالا به پایین
مناسب بودن برای وببسیار ضعیف (بارگذاری‌های حجیم)عالی برای گرافیکضعیف (نشر رومیزی)عالی برای عکاسی

حالت‌های رایج خرابی و راهنمای بازیابی هگز

تصویر به صورت مورب بریده‌شده یا با زاویه کج رندر می‌شود.

علت ریشه‌ای: محاسبه نادرست پدینگ ردیف (عدم پد کردن هر خط اسکن تا مرز 4 بایتی).

بازیابی: رمزگذاری مجدد با استفاده از مبدل تصویر File2File برای اعمال گام خط اسکن 32 بیتی صحیح.

تحلیل امنیتی و بردارهای حمله تجزیه‌کننده (Parser)

رمزگشایان BMP اغلب از خوانش بیش از حد بافر هنگام تخصیص بافرها بر اساس ابعاد هدر DIB غیرقابل اعتماد رنج می‌برند.

بردارهای حمله شناخته‌شده

  • سرریز عدد صحیح در محاسبه عرض * ارتفاع * bpp که منجر به تخصیص هیپ کوچک و نوشتن خارج از محدوده می‌شود.
  • دنباله‌های فرار طول اجرای RLE8/RLE4 خراب که باعث نوشتن حافظه فراتر از بافر تخصیص‌یافته می‌شود.
  • انکار سرویس از طریق تخصیص حافظه چند گیابایتی که توسط ابعاد هدر دستکاری‌شده تحریک می‌شود.

بهترین روش‌های پدافندی:

تاریخچه و نقاط عطف

1998ویندوز 98 هدر BITMAPV5HEADER را معرفی کرد که مدیریت پروفایل رنگی ICC و اصلاح گاما را اضافه می‌کند.
1990ویندوز 3.0 مشخصات DIB مربوط به BITMAPINFOHEADER را در سراسر سیستم‌عامل استاندارد کرد.
1987همراه با ویندوز 2.0 و OS/2 1.1 به عنوان فرمت رستر نمایشی بومی معرفی شد.

مزایا و نقاط قوت کلیدی

  • بدون افت کیفیت فشرده‌سازی: ذخیره‌سازی پیکسل دقیقاً مطابقت‌دار با بیت (Bit-exact) با صفر آرتیفکت فشرده‌سازی.
  • پشتیبانی بومی جهانی سیستم‌عامل در تمام نسخه‌های ویندوز، لینوکس و مک‌اواس.
  • پیچیدگی رمزگشایی بسیار ناچیز که آن را برای میکروکنترلرهای توکار و آموزش برنامه‌نویسی گرافیکی ایده‌آل می‌سازد.

محدودیت‌ها و معایب فنی

  • حجم فایل‌های بسیار بزرگ به دلیل عدم وجود فشرده‌سازی انتروپی مدرن مانند DEFLATE یا کدگذاری هافمن.
  • ناکارآمد برای انتقال وب یا توزیع شبکه تلفن همراه.
  • ترتیب خطوط اسکن از پایین به بالا نیازمند معکوس‌سازی عمودی ردیف در پایپ‌لاین‌های گرافیکی مدرن از بالا به پایین است.

نکات فنی جالب

  • فرمت BMP خطوط اسکن تصویر را به طور پیش‌فرض به صورت سر و ته (از پایین به بالا) به دلیل سیستم مختصات دکارتی ریاضی استفاده شده در OS/2 ذخیره می‌کند.
  • اگر مقدار ارتفاع در هدر BMP روی یک عدد منفی تنظیم شود، تصویر از بالا به پایین و به صورت درست رمزگشایی می‌شود.
  • هر خط اسکن در یک فایل BMP باید با صفرها تا ضریبی از 4 بایت (تراز مرز 32 بیتی) پد شود.

سوالات فنی متداول

چرا فایل‌های BMP بسیار بزرگ هستند؟

فایل‌های BMP مقادیر رنگی خام و فشرده‌نشده را برای هر پیکسل منفرد ذخیره می‌کنند، در حالی که فرمت‌هایی مانند PNG آن داده‌ها را بدون از دست دادن هیچ کیفیتی فشرده می‌کنند.

آیا BMP از شفافیت (Transparency) پشتیبانی می‌کند؟

بله. فایل‌های BMP ۳۲ بیتی (با استفاده از BITMAPV3HEADER یا جدیدتر) می‌توانند یک کانال آلفای ۸ بیتی را ذخیره کنند، اگرچه پشتیبانی از آن در نرم‌افزارهای قدیمی‌تر متفاوت است.

چگونه می‌توانم حجم یک فایل BMP را کاهش دهم؟

تبدیل یک فایل BMP به PNG با استفاده از File2File.app معمولاً حجم فایل را ۶۰ تا ۸۵ درصد بدون هیچ‌گونه افت کیفیت بصری کاهش می‌دهد.