Thảo luận:BMP

Nội dung trang không được hỗ trợ ở ngôn ngữ khác.
Thêm đề tài
Bách khoa toàn thư mở Wikipedia

Cấu trúc File ảnh BMP 1. Định dạng ảnh BMP: a) Giới thiệu: Các định dạng tập tin BMP, đôi khi gọi là định dạng tập tin bitmap hay DIB (device-independent bitmap), là một hình ảnh định dạng tập tin bitmap được sử dụng để lưu trữ hình ảnh số, đặc biệt là trên hệ điều hành Microsoft Windows và OS / 2. Nhiều người sử dụng giao diện đồ hoạ dùng bitmaps trong việc xây dựng hệ thống đồ hoạ phụ của họ. Ví dụ như hệ điều hành Microsoft Windows và OS/2, các ảnh bitmap được đặt tên với phần mở rộng là .BMP hoặc là .DIB. Microsoft đã xác định một mô tả đặc biệt cho màu sắc của bitmap của những độ sâu màu sắc khác nhau, như là một sự hỗ trợ cho việc trao đổi giữa thiết bị và ứng dụng. Chúng được gọi là deive-independent bitmaps hay DIBs, và kiểu tập tin cho chúng được gọi là tập tin DIB hay tập tin BMP. Theo hỗ trợ của Microsoft:

Khi định dạng BMP/DIB được tạo ra cho kiến trúc Intel X86, tất cả các integers được lưu trữ trong little-endian format.

b) Thuộc tính của BMP:  Số bit trên mỗi điểm ảnh thường được ký hiệu là n. Một ảnh BMP n-bit thì sẽ có 2n màu. Giá trị n càng lớn thì ảnh BMP càng có nhiều màu và càng rõ nét hơn. Giá trị tiêu biểu của n là 1 (ảnh đen trắng), 4 (ảnh 16 màu), 8 (ảnh 256 màu), 16 (ảnh 65536 màu) và 24 (ảnh 16 triệu màu). Ảnh BMP 24-bit có chất lượng hình ảnh trung thực nhất.  Chiều cao và chiều rộng của ảnh được cho bởi cái điểm ảnh. c) Cấu trúc của BMP: Một tập tin BMP thường chứa những khối dữ liệu sau:

BMP File Header Lưu trữ những thông tin căn bản về tập tin BMP Bitmap Information (DIB header) Lưu trữ chi tiết thông tin về ảnh bitmap Color Palette Lưu trữ màu sắc được sử dụng cho indexed color bitmap Bitmap Data Lưu trữ ảnh(từng điểm ảnh một)

 DIBs in memory Một tập tin BMP được tải lên trong bộ nhớ là 1 cấu trúc dữ liệu DIB, là một thành phần quan trọng của Windows GDI API. Cấu trúc dữ liệu DIB thì giống như là một tập tin kiểu BMP, nhưng có thêm 14 byte BMP header.

 BMP file header Khối byte này là phần bắt đầu của tập tin và được sử dụng để định danh tập tin. Một ứng dụng sẽ đọc khối này đầu tiên để đảm bảo rằng tập tin này thật sự là tập tin BMP và không bị hư hại. lưu ý rằng 2 byte đầu tiên của tập tin BMP được lưu trữ trong big-endian order. Đó là ký số ‘BM’. Tất cả các giá trị integer khác được lưu trữ trong định dạng little-endian. Offset# Kích thước Mục đích

0 2 Ký số được sử dụng để xác định tập tin BMP 0x42 0x4D (B và M trong mã Hex). 2 4 Kích thước tập tin BMP (byte). 6 2 Giá trị tùy thuộc vào ứng dụng tạo ra ảnh. 8 2 Giá trị tùy thuộc vào ứng dụng tạo ra ảnh. 10 4 Độ dịch chuyển. ví dụ như địa chỉ bắt đầu của byte mà dữ liệu bitmap có thể được tìm thấy.

 Bitmap information (DIB header) Các byte thông báo cho các ứng dụng biết các thông tin chi tiết về bức hình, cái mà sẽ được dùng để biểu diễn bức hình trên màn hình. Các khối cũng được sử dụng phù hợp với phần header của windows và OS/2 và có một số biến thể khác nhau. Tất cả chúng chứa 1 vùng dword, xác định kích thước của chúng, để một ứng dụng có thể dể dàng xác định header được sử dụng trong ảnh ……………

Kích thước Header Xác định bởi Được hỗ trợ bởi GDI của 40 Windows V3 BITMAPINFOHEADER Tất cả các phiên bản từ Windows 3.0 12 OS/2 V1 BITMAPCOREHEADER OS/2 và tất cả các phiên bản từ Windows 3.0 64 OS/2 V2 108 Windows V4 BITMAPV4HEADER Tất cả các phiên bản từ Windows 95/NT4 124 Windows V5 BITMAPV5HEADER Windows 98/2000 và mới hơn

…………………….

Offset# Kích thước Mục đích 14 4 Kích thước của header này (40 bytes). 18 4 Chiều rộng của bitmap trong pixel(được gán integer). 22 4 Chiều cao của bitmap trong pixel(được gán integer). 26 2 Số lượng bảng màu được sử dụng. Bắt buộc phải lớn hơn 1. 28 2 Độ sâu màu. Giá trị cụ thể là 1, 4, 8, 16, 24 và 32. 30 4 Phương thức nén được sử dụng.(được mô tả trong bảng bên dưới) 34 4 Kích thước ảnh, là kích thước của dữ liệu ảnh thô. Không phải là kích thước tập tin. 38 4 Độ phân giải ngang(pixel trên mét, được gán integer). 42 4 Độ phân giải dọc(pixel trên mét, được gán integer). 46 4 Số lượng màu trong palette, hay 0 < giá trị mặc định < 2n 50 4 Số lượng màu quan trọng được sử dụng, hay bằng 0. Khi tất cả các màu đều quan trọng thì thường được bỏ qua.

………………………..

Giá trị Xác định bởi Phương thức nén Ghi chú 0 BI_RGB Cụ thể nhất 1 BI_RLE8 RLE 8 bit/pixel Cũng có thể được sử dụng với ảnh bitmap 8 bit/pixel 2 BI_RLE4 RLE 4 bit//pixel Cũng có thể được sử dụng với ảnh bitmap 4 bit/pixel 3 BI_BITFIELDS Bit field Cũng có thể được sử dụng với ảnh bitmap 16 và 32 bit/pixel 4 BI_JPEG JPEG Ảnh bitmap chứa 1 ảnh JPEG 5 BI_PNG PNG Ảnh bitmap chứa 1 ảnh PNG

Lưu ý: BI_JPG và BI_PNG là những driver máy in và không được hỗ trợ khi hiểu thị trên màn hình.

…………..

Offset# Kích thước Mục đích 14 4 Kích thước của header này(12 byte) 18 2 Chiều rộng của bitmap trong pixel 20 2 Chiều cao của bitmap trong pixel 22 2 Số lượng bảng màu 24 2 Độ sâu màu: 1, 4, 8 và 24

………………………..

 Color palette Có thể tìm thấy palette ngay sau BMP header và DIB header. Palette là 1 bảng danh sách các màu có sẵn để sử dụng trong 1 indexed-color cụ thể. Mỗi pixel trong ảnh được mô tả bằng 1 số của bit(1, 4, hay 8) và được chỉ tới 1 màu trong bảng. mục đích của palette màu trong indexed-color là để thông báo cho các ứng dụng rằng mỗi màu sắc thật sự thì được trỏ tới 1 giá trị tương ứng. DIB cũng sử dụng hệ màu RGB. Trong hệ này, một màu được giới hạn bởi cường độ khác nhau ( từ 0 tới 255) của những màu chính như đỏ(R), lục(G), lam(B). Một màu được xác định bởi 3 giá trị R, G, B. Các palette không được sử dụng khi bitmap từ 16 bit trở lên. Điều này có nghĩa là ko có palette trong những tập tin này.  Bitmap data Khối byte này mô tả hình ảnh, từng pixel một. Pixel được lưu trữ theo kiểu “lộn ngược”, bắt đầu từ góc dưới bên trái, đi từ trái qua phải và từ dưới lên trên của ảnh. Màu 1 bit (2 màu), 1 pixel được lưu trữ trong 1 bit. Màu 4 bit (16 màu), 2 pixel được lưu trữ trong 1 byte. Mỗi giá trị của pixel được trỏ tới 1 bảng 16 màu. Màu 8 bit (256 màu), 1 pixel được lưu trữ trong 1 byte. Mỗi giá trị của pixel được trỏ tới 1 bảng 256 màu. Màu RGB(24 bit), được lưu trữ trong 3 bảng màu (lam, lục, đỏ).

 Usage of BMP format Sự đơn giản của kiểu tập tin BMP và sự phổ biến rộng rãi của nó trong windows và những nơi khác, và định dạng này tương đối tốt và nguồn tài liệu miễn phí. Đã làm cho nó là một định dạng ảnh rất phổ biến mà nhiều chương trình xử lý ảnh từ nhiều hệ điều hành có thể đọc và ghi. Hầu hết các tập tin BMP đều có kích thước tập tin tương đối lớn, vì chúng thiếu những thành phần nén và chứa nhiều thông tin dư thừa.