Ảnh bitmap Windows (.bmp)

Microsoft Tiêu chuẩn

Bitmap 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ọn hoặc thả tệp vào đây

Chuyển đổi 100% riêng tư trong trình duyệt - tệp không bao giờ rời khỏi thiết bị của bạn

hoặc dán Ctrl+V
Cam kết bảo mật không truyền tải qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

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 4D

BIỂ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 ContainerBITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array
NénUncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding
Thứ tự byte EndiannessLittle-Endian (Intel x86 byte order)
Không gian màuDevice Dependent RGB, sRGB (BITMAPV5HEADER embedded)
Kênh & Cấu trúc1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA
Kích thước tối đa2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer)
Độ trong suốt32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats
Truyền phát & Tăng dầnNon-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ậtBMP (Hiện tại)PNGTIFFJPG
Chế độ nénKhông nén / RLE tối thiểuDeflate không mất dữ liệu (nhỏ hơn ~70%)Không nén / LZW / ZipDCT có mất dữ liệu (nhỏ hơn ~90%)
Tốc độ giải mãSao chép bộ nhớ tức thờiYêu cầu giải nén DeflateYêu cầu giải nén LZW/ZIPYêu cầu tính toán IDCT
Thứ tự dòng quétTừ dưới lên trên (đảo ngược)Từ trên xuống dướiTừ trên xuống dưới / DảiKhối MCU từ trên xuống dưới
Độ phù hợp với WebRất kém (dung lượng quá lớn)Tuyệt vời cho đồ họaKé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

1998Windows 98 giới thiệu BITMAPV5HEADER, bổ sung quản lý cấu hình màu ICC và hiệu chỉnh gamma.
1990Windows 3.0 chuẩn hóa thông số kỹ thuật DIB BITMAPINFOHEADER trên toàn bộ hệ điều hành.
1987Được giới thiệu cùng với Windows 2.0 và OS/2 1.1 dưới dạng định dạng raster hiển thị gố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ị.