Ảnh bitmap Windows (.bmp)
Microsoft Tiêu chuẩnBitmap Image File (BMP) là định dạng đồ họa raster độc lập với thiết bị cơ bản của Microsoft, lưu trữ các dòng quét không nén hoặc nén RLE với khả năng tương thích trực tiếp với khung hình phần cứng.
Chuyển đổi BMP sang PNG
Trình chuyển đổi từ BMP sang PNG miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạn.
Kiểm tra & Siêu dữ liệu
Các hệ điều hành và trình phân tích tệp nhận dạng tệp BMP bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:
Chữ ký tiêu đề ở cấp độ Byte (Magic Bytes)
Các hệ điều hành và trình phân tích tệp nhận dạng tệp BMP bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:
CHỮ KÝ HEX (OFFSET 0):
42 4DBIỂU DIỄN ASCII: BM
Tiêu chuẩn hóa: Microsoft Windows Device-Independent Bitmap (DIB) Architecture
Thông số kỹ thuật
| Kiến trúc Container | BITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array |
| Nén | Uncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding |
| Thứ tự byte Endianness | Little-Endian (Intel x86 byte order) |
| Không gian màu | Device Dependent RGB, sRGB (BITMAPV5HEADER embedded) |
| Kênh & Cấu trúc | 1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA |
| Kích thước tối đa | 2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer) |
| Độ trong suốt | 32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats |
| Truyền phát & Tăng dần | Non-streamable; scanlines stored upside-down (bottom-up) unless height is negative |
Ma trận so sánh kỹ thuật: BMP so với các đối thủ
| Thuộc tính kỹ thuật | BMP (Hiện tại) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Chế độ nén | Không nén / RLE tối thiểu | Deflate không mất dữ liệu (nhỏ hơn ~70%) | Không nén / LZW / Zip | DCT có mất dữ liệu (nhỏ hơn ~90%) |
| Tốc độ giải mã | Sao chép bộ nhớ tức thời | Yêu cầu giải nén Deflate | Yêu cầu giải nén LZW/ZIP | Yêu cầu tính toán IDCT |
| Thứ tự dòng quét | Từ dưới lên trên (đảo ngược) | Từ trên xuống dưới | Từ trên xuống dưới / Dải | Khối MCU từ trên xuống dưới |
| Độ phù hợp với Web | Rất kém (dung lượng quá lớn) | Tuyệt vời cho đồ họa | Kém (xuất bản máy tính để bàn) | Tuyệt vời cho nhiếp ảnh |
Các chế độ hỏng hóc phổ biến & Hướng dẫn khôi phục Hex
Hình ảnh hiển thị bị cắt chéo hoặc nghiêng một góc.
Nguyên nhân gốc rễ: Tính toán đệm hàng không chính xác (không đệm mỗi dòng quét theo ranh giới 4-byte).
Khắc phục: Mã hóa lại bằng Trình chuyển đổi hình ảnh File2File để ép buộc độ dài dòng quét 32-bit chính xác.
Phân tích bảo mật & Các vectơ tấn công bộ phân tích cú pháp
Các bộ giải mã BMP thường gặp lỗi đọc tràn bộ đệm khi cấp phát bộ nhớ dựa trên các kích thước tiêu đề DIB không đáng tin cậy.
Các Véc-tơ Tấn công Đã biết
- Tràn số nguyên trong phép tính chiều rộng * chiều cao * bpp dẫn đến phân vùng heap nhỏ và ghi ngoài giới hạn.
- Trình tự thoát độ dài chuỗi RLE8/RLE4 bị hỏng gây ra việc ghi bộ nhớ vượt quá vùng đệm được cấp phát.
- Từ chối dịch vụ thông qua phân bổ bộ nhớ đa gigabyte do kích thước tiêu đề được thiết kế độc hại kích hoạt.
Thực tiễn Tốt nhất về Phòng thủ:
Nguồn gốc lịch sử & Các cột mốc
Ưu điểm & Lợi ích chính
- Không suy giảm chất lượng do nén: Lưu trữ điểm ảnh chính xác từng bit 100% và không có hiện tượng giảm chất lượng do nén.
- Hỗ trợ hệ điều hành gốc phổ quát trên tất cả các phiên bản Windows, Linux và macOS.
- Độ phức tạp khi giải mã cực kỳ thấp khiến nó trở nên lý tưởng cho các vi điều khiển nhúng và giáo dục lập trình đồ họa.
Hạn chế & Nhược điểm kỹ thuật
- Kích thước tệp cực kỳ lớn do thiếu các thuật toán nén entropy hiện đại như DEFLATE hoặc mã hóa Huffman.
- Không hiệu quả cho việc truyền tải qua web hoặc phân phối qua mạng di động.
- Thứ tự dòng quét từ dưới lên trên đòi hỏi phải đảo ngược hàng dọc trong các luồng xử lý đồ họa từ trên xuống hiện đại.
Thông tin kỹ thuật thú vị
- BMP lưu trữ các dòng quét hình ảnh ngược đầu (từ dưới lên trên) theo mặc định do hệ tọa độ Descartes toán học được sử dụng trong OS/2.
- Nếu giá trị chiều cao trong tiêu đề BMP được đặt thành một số âm, hình ảnh sẽ được giải mã xuôi chiều (từ trên xuống dưới).
- Mỗi dòng quét trong tệp BMP phải được đệm các số không để đạt bội số của 4 byte (căn chỉnh ranh giới 32-bit).
Các câu hỏi kỹ thuật thường gặp
Tại sao file BMP lại có dung lượng lớn đến vậy?
File BMP lưu trữ các giá trị màu thô, không nén cho từng điểm ảnh riêng lẻ, trong khi các định dạng như PNG nén dữ liệu đó mà không làm mất bất kỳ chất lượng nào.
BMP có hỗ trợ độ trong suốt không?
Có. Các file BMP 32-bit (sử dụng BITMAPV3HEADER hoặc mới hơn) có thể lưu trữ kênh alpha 8-bit, mặc dù khả năng hỗ trợ có thể khác nhau ở các phần mềm cũ hơn.
Làm thế nào để giảm kích thước của một file BMP?
Chuyển đổi file BMP sang PNG bằng File2File.app thường giúp giảm kích thước file từ 60% đến 85% mà không làm giảm chất lượng hình ảnh hiển thị.
Các cặp chuyển đổi BMP liên quan
Chuyển đổi tệp Bitmap Windows chưa nén sang PNG mang lại khả năng nén không mất dữ liệu giúp thu gọn kích thước tệp mà không làm giảm chất lượng hình ảnh.
Chuyển đổi đồ họa mạng di động sang Bitmap Windows biến đổi dữ liệu raster đã nén thành lưới điểm ảnh chưa nén cho các hệ điều hành cũ và đường ống phần cứng.