بیتمپ ویندوز (.bmp)
Microsoft استانداردفایل تصویر بیتمپ (BMP) فرمت گرافیکی رستر مستقل از دستگاه بنیادی مایکروسافت است که خطوط اسکن بدون فشردهسازی یا فشردهشده با RLE را با سازگاری مستقیم با فریمبفر سختافزاری ذخیره میکند.
تبدیل BMP به PNG
مبدل رایگان BMP به PNG درون مرورگر. فایلها را فورا روی دستگاه خود تبدیل کنید.
بررسی و فراداده
سیستمعاملها و تحلیلگرهای فایل، فایلهای BMP را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای هدر در سطح بایت (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 (فعلی) | PNG | TIFF | JPG |
|---|---|---|---|---|
| حالت فشردهسازی | فشردهنشده / RLE حداقل | Deflate بدون افت کیفیت (حدود ۷۰ درصد کوچکتر) | فشردهنشده / LZW / Zip | DCT با افت کیفیت (حدود ۹۰ درصد کوچکتر) |
| سرعت رمزگشایی | کپی حافظه آنی | نیازمند باز کردن فشردگی Deflate | نیازمند باز کردن فشردگی LZW/ZIP | نیازمند محاسبه IDCT |
| ترتیب خط اسکن | از پایین به بالا (معکوس) | از بالا به پایین | از بالا به پایین / نواری | بلوکهای MCU از بالا به پایین |
| مناسب بودن برای وب | بسیار ضعیف (بارگذاریهای حجیم) | عالی برای گرافیک | ضعیف (نشر رومیزی) | عالی برای عکاسی |
حالتهای رایج خرابی و راهنمای بازیابی هگز
تصویر به صورت مورب بریدهشده یا با زاویه کج رندر میشود.
علت ریشهای: محاسبه نادرست پدینگ ردیف (عدم پد کردن هر خط اسکن تا مرز 4 بایتی).
بازیابی: رمزگذاری مجدد با استفاده از مبدل تصویر File2File برای اعمال گام خط اسکن 32 بیتی صحیح.
تحلیل امنیتی و بردارهای حمله تجزیهکننده (Parser)
رمزگشایان BMP اغلب از خوانش بیش از حد بافر هنگام تخصیص بافرها بر اساس ابعاد هدر DIB غیرقابل اعتماد رنج میبرند.
بردارهای حمله شناختهشده
- سرریز عدد صحیح در محاسبه عرض * ارتفاع * bpp که منجر به تخصیص هیپ کوچک و نوشتن خارج از محدوده میشود.
- دنبالههای فرار طول اجرای RLE8/RLE4 خراب که باعث نوشتن حافظه فراتر از بافر تخصیصیافته میشود.
- انکار سرویس از طریق تخصیص حافظه چند گیابایتی که توسط ابعاد هدر دستکاریشده تحریک میشود.
بهترین روشهای پدافندی:
تاریخچه و نقاط عطف
مزایا و نقاط قوت کلیدی
- بدون افت کیفیت فشردهسازی: ذخیرهسازی پیکسل دقیقاً مطابقتدار با بیت (Bit-exact) با صفر آرتیفکت فشردهسازی.
- پشتیبانی بومی جهانی سیستمعامل در تمام نسخههای ویندوز، لینوکس و مکاواس.
- پیچیدگی رمزگشایی بسیار ناچیز که آن را برای میکروکنترلرهای توکار و آموزش برنامهنویسی گرافیکی ایدهآل میسازد.
محدودیتها و معایب فنی
- حجم فایلهای بسیار بزرگ به دلیل عدم وجود فشردهسازی انتروپی مدرن مانند DEFLATE یا کدگذاری هافمن.
- ناکارآمد برای انتقال وب یا توزیع شبکه تلفن همراه.
- ترتیب خطوط اسکن از پایین به بالا نیازمند معکوسسازی عمودی ردیف در پایپلاینهای گرافیکی مدرن از بالا به پایین است.
نکات فنی جالب
- فرمت BMP خطوط اسکن تصویر را به طور پیشفرض به صورت سر و ته (از پایین به بالا) به دلیل سیستم مختصات دکارتی ریاضی استفاده شده در OS/2 ذخیره میکند.
- اگر مقدار ارتفاع در هدر BMP روی یک عدد منفی تنظیم شود، تصویر از بالا به پایین و به صورت درست رمزگشایی میشود.
- هر خط اسکن در یک فایل BMP باید با صفرها تا ضریبی از 4 بایت (تراز مرز 32 بیتی) پد شود.
سوالات فنی متداول
چرا فایلهای BMP بسیار بزرگ هستند؟
فایلهای BMP مقادیر رنگی خام و فشردهنشده را برای هر پیکسل منفرد ذخیره میکنند، در حالی که فرمتهایی مانند PNG آن دادهها را بدون از دست دادن هیچ کیفیتی فشرده میکنند.
آیا BMP از شفافیت (Transparency) پشتیبانی میکند؟
بله. فایلهای BMP ۳۲ بیتی (با استفاده از BITMAPV3HEADER یا جدیدتر) میتوانند یک کانال آلفای ۸ بیتی را ذخیره کنند، اگرچه پشتیبانی از آن در نرمافزارهای قدیمیتر متفاوت است.
چگونه میتوانم حجم یک فایل BMP را کاهش دهم؟
تبدیل یک فایل BMP به PNG با استفاده از File2File.app معمولاً حجم فایل را ۶۰ تا ۸۵ درصد بدون هیچگونه افت کیفیت بصری کاهش میدهد.
جفتهای تبدیل مرتبط با BMP
تبدیل فایلهای بیتمپ فشردهنشده ویندوز به PNG فشردهسازی بدون افت کیفیتی را ارائه میدهد که حجم فایلها را بدون کاهش کیفیت تصویر کوچک میکند.
تبدیل گرافیک شبکهای قابل حمل به بیتمپ ویندوز، دادههای شطرنجی فشرده را به یک شبکه پیکسلی فشردهنشده برای سیستمعاملهای قدیمی و خطوط لوله سختافزاری تبدیل میکند.