Định dạng tệp

BMP - Ảnh Bitmap Windows

BMP là định dạng bitmap đơn giản của Microsoft, lưu trữ điểm ảnh gần như chính xác như chúng xuất hiện trên màn hình mà không nén, khiến tệp vừa rất đơn giản vừa rất lớn.

.bmp

BMP là định dạng ảnh bitmap mà Microsoft tích hợp sẵn trong Windows và đã là một phần của hệ thống từ những phiên bản giao diện đồ họa đầu tiên; một biến thể rất gần gũi đến từ OS/2 của IBM. Ý tưởng ban đầu không phải là nén thông minh. Một file BMP gần như là bản ghi thẳng các pixel mà một chương trình sẽ hiển thị trên màn hình, chỉ được bọc trong một phần header ngắn giải thích cách đọc chúng. Bạn vẫn gặp các file BMP dưới dạng biểu tượng và tài nguyên bên trong phần mềm Windows, dưới dạng đầu ra từ các chương trình chụp hình đơn giản, và như một định dạng trung gian khi một chương trình chuyển một ảnh cho chương trình khác.

Cách BMP lưu trữ hình ảnh

Hầu như luôn không nén. File bắt đầu với một header nhỏ chứa hai chữ cái BM, kích thước file và vị trí nơi vùng pixel bắt đầu, sau đó là một header thứ hai mô tả chính bức ảnh: chiều rộng, chiều cao, độ sâu bit và cách sắp xếp màu sắc. Sau đó có thể có một bảng màu tùy chọn, rồi đến mảng pixel, mỗi pixel một giá trị, không bỏ đi gì cả.

Có hai điểm khác thường dễ gây bất ngờ. Các hàng pixel thường được lưu từ dưới lên trên, vì vậy các pixel đầu tiên trong file là góc dưới bên trái của bức ảnh, và mỗi hàng được đệm cho đủ bội số của bốn byte. Độ sâu bit chạy từ 1 bit, nghĩa là hai màu, qua các bảng màu 4 và 8 bit, đến 16, 24 và 32 bit màu đầy đủ. Có một dạng nén theo độ dài chuỗi cho chế độ 4 và 8 bit nhưng hiếm khi được dùng, và chế độ 32 bit có thể chứa kênh trong suốt alpha, dù phần mềm cũ thường bỏ qua nó.

Vì không có gì được nén, kích thước file vừa dự đoán được vừa lớn: một BMP 24 bit tốn ba byte cho mỗi pixel bất kể nội dung bức ảnh, nên một bức ảnh vừa với một file JPG nhỏ sẽ trở thành nhiều megabyte. Đổi lại, định dạng này cực kỳ dễ đọc và ghi, và nó là không mất dữ liệu: không chi tiết nào bị loại bỏ.

Metadata mà BMP chứa

Rất ít, và đó là điều quan trọng nhất cần biết về định dạng này. Metadata là phần thông tin mô tả mà một file lưu về chính nó, và BMP được thiết kế từ trước khi khái niệm đó trở nên quan trọng. Không có EXIF, IPTC hay XMP trong một file BMP, nên không có chỗ cho tên mẫu máy ảnh, tên nhiếp ảnh gia, chú thích hay tọa độ GPS. Nó không có trường tác giả, không có tiêu đề và không có bất kỳ trường ngày tháng nào: ngày tháng duy nhất cho một BMP là ngày mà hệ thống file lưu, nằm ngoài file và thay đổi khi file được sao chép.

Những gì một báo cáo có thể hiển thị lấy từ các header, và chúng mô tả bức ảnh hơn là lịch sử của nó:

  • Chiều rộng, chiều cao và độ sâu bit, và các hàng pixel được lưu từ dưới lên hay từ trên xuống.
  • Phương pháp nén, thường là không nén gì cả.
  • Độ phân giải ngang và dọc, được lưu dưới dạng pixel trên mét thay vì đơn vị chấm trên inch quen thuộc hơn.
  • Số lượng màu mà bảng màu chứa, và có bao nhiêu trong số đó được bức ảnh xem là quan trọng.

Có một lưu ý nhỏ thực sự liên quan đến quyền riêng tư. Các header mở rộng có thể đính kèm một hồ sơ màu ICC và cho phép liên kết hồ sơ đó thay vì nhúng, được lưu dưới dạng đường dẫn file trên máy đã lưu bức ảnh. Một đường dẫn như vậy có thể lộ tên người dùng hoặc cấu trúc thư mục của ai đó. Trường hợp này không phổ biến, nhưng nếu một báo cáo hiển thị hồ sơ màu dạng liên kết, đó là một chi tiết thực sự về máy tính của một người bên trong một file vốn dĩ gần như im lặng.

Khi nào nên dùng BMP

BMP có ý nghĩa khi sự đơn giản quan trọng hơn kích thước: cung cấp ảnh cho một chương trình hoặc thiết bị với bộ giải mã tối giản, làm việc bên trong phần mềm Windows vốn kỳ vọng định dạng này, hoặc truyền một bức ảnh giữa hai bước của quy trình mà việc nén lại sẽ chỉ là tốn công. Vì là định dạng không mất dữ liệu, việc lưu đi lưu lại nhiều lần cũng an toàn mà không làm giảm chất lượng ảnh.

Với mọi thứ bạn cần lưu trữ, gửi hoặc xuất bản, PNG là lựa chọn tốt hơn. Nó cũng không mất dữ liệu, nên các pixel được khôi phục giống hệt, nhưng việc lọc và nén thường giảm kích thước file chỉ còn một phần nhỏ, và nó có thể mang theo tiêu đề, tác giả và hồ sơ màu. Với ảnh chụp, JPG hoặc WebP sẽ còn nhỏ hơn nữa. Hãy chọn BMP một cách có chủ đích, vì lý do kỹ thuật, chứ không phải như lựa chọn mặc định.