MỤC LỤC
1
TRÌNH BÀY CẤU TRÚC HEADER CỦA FILE BMP
1.
Giới thiệu
Trong đồ họa máy vi tính, Bitmap là một tập tin định dạng ảnh khá phổ biến còn
được biết đến với tên tiếng anh là Windows bitmap, là một định dạng tập tin hình ảnh
khá phổ biến. Các tập tin đồ họa lưu dưới dạng ảnh bitmap thường có đuôi là
.BMP hoặc .DIB DIB (Device Independent Bitmap).
2.
Các thuộc tính tiêu biểu của một tập tin ảnh bitmap
Các thuộc tính tiêu biểu của một tập tin ảnh BMP(cũng như file ảnh nói chung) là
-
Số bit trên mỗi điểm ảnh (bit per pixel), thường được ký hiệu bởi n. Một ảnh
BMP n-bit có 2n màu. Giá trị n càng lớn thì ảnh 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 của ảnh (height), cho bởi điểm ảnh (pixel).
Chiều rộng của ảnh (width), cho bởi điểm ảnh.
3.
Cấu trúc tập tin bitmap
Cấu trúc tập tin ảnh BMP bao gồm 4 phần:
-
Bitmap Header (14 bytes): giúp nhận dạng tập tin bitmap.
Bitmap Information (40 bytes): lưu một số thông tin chi tiết giúp hiển thị ảnh.
Color Palette (4*x bytes), x là số màu của ảnh: định nghĩa các màu sẽ được sử
-
dụng trong ảnh.
Bitmap Data: lưu dữ liệu ảnh.
4.
Đặc điểm tập tin bitmap
2
Đặc điểm nổi bật nhất của định dạng BMP là tập tin hình ảnh thường
không được nén bằng bất kỳ thuật toán nào. Khi lưu ảnh, các điểm ảnh được ghi
trực tiếp vào tập tin –một điểm ảnh sẽ được mô tả bởi một hay nhiều byte tùy
thuộc vào giá trị n của ảnh. Do đó, một hình ảnh lưu dưới dạng BMP thường có
kích cỡ rất lớn, gấp nhiều lần so với các ảnh được nén (chẳng hạn GIF, JPEG
hay PNG).
Định dạng BMP được hỗ trợ bởi hầu hết các phần mềm đồ họa chạy trên
Windows, và cả một số ứng dụng chạy trên MS-DOS. Ngay từ Windows 3.1,
Microsoft đã cho ra đời phần mềm PaintBrush, một phần mềm hỗ trợ vẽ hình
ảnh đơn giản và lưu hình ảnh được vẽ dưới dạng BMP 16 hay 256 màu. Tuy
nhiên, do kích thước tập tin ảnh BMP quá lớn, định dạng BMP không phù hợp
để trao đổi hình ảnh qua mạngInternet (do hạn chế về tốc độ truyền dữ liệu).
Do đó, các trang web thường sử dụng ảnh dạng GIF, JPEG hay PNG. Các
định dạng này hỗ trợ các thuật toán nén hình ảnh, vì vậy có thể giảm bớt kích cỡ
của ảnh.
5.
Cấu trúc Header
Bitmap Header (14 bytes) khối byte này nằm ở đầu tệp và được sử dụng để xác định
tệp. Một ứng dụng thông thường đọc khối này trước để đảm bảo rằng tệp thực sự là
tệp BMP và nó không bị hỏng. 2 byte đầu tiên của định dạng tệp BMP là ký tự "B" sau
đó là ký tự "M" trong mã hóa ASCII . Tất cả các giá trị số nguyên được lưu trữ ở định
dạng little-endian (nghĩa là byte có ý nghĩa nhỏ nhất trước tiên).
Cấu trúc Header file:
3
Hệ Hex
Hệ Dec
Kích thước
(bytes)
Mục đích
Trường Header được sử dụng để xác
định tệp BMP và DIB 0x42, 0x4D ở
dạng Hex , giống như BM trong
ASCII. Các mục sau đây là có thể:
BM
Windows 3.1x, 95, NT, ...
ba
OS/2 Mảng cấu trúc bitmap
00
0
2
CI
OS/2 Cấu trúc màu biểu
tượng
CP
OS/2 Hằng số màu trỏ chuột
IC
OS/2 Cấu trúc biểu tượng
PT
OS/2 Con trỏ
02
2
4
Kích thước file ảnh BMP tính bằng
byte
06
6
2
Dự trữ, giá trị tùy thuộc vào ứng
dụng tạo ra file hình ảnh
08
8
2
Dự trữ, giá trị tùy thuộc vào ứng
dụng tạo ra file hình ảnh
0A
10
4
Địa chỉ bắt đầu của nội dung file
6.
Ví dụ về BMP
4
Offset
Kích
thước
(byte)
Giá trị
Hex
Giá trị
Mục đích
BMP header
0h
2
42 4D
“BM”
Trường ID (42h, 4Dh)
2h
4
46 00 00
00
70 bytes (54+16)
Kích thước của tệp
6h
2
00 00
Không sử dụng
Ứng dụng cụ thể
8h
2
00 00
Không sử dụng
Ứng dụng cụ thể
Ah
4
36 00 00
00
54 bytes (14+40)
Nơi mảng pixel dữ liệu có
thể tìm thấy
DIB header
Eh
4
28 00 00
00
40 bytes
Số bytes trong DIB header
từ đây
5
12h
4
02 00 00
00
2 pixel (từ trang
sang phải)
Chiều rộng của bitmap tình
bằng pixel
16h
4
02 00 00
00
2 pixel (từ dưới
lên)
Chiều cao của bitmap tính
bằng pixel
1Ah
2
01 00
1 plane
Số lượng mặt phẳng màu
đang được sử dụng
1Ch
2
18 00
24 bits
Số bit trên mỗi pixel
1Eh
4
00 00 00
00
0
BI_RBG, không nén mảng
pixel
22h
4
10 00 00
00
16 bytes
Kích thước của dữ liệu
bitmap thô
26h
4
13 0B 00
00
2835 pixel/mét
chiều ngang
Độ phân giải in của hình
ảnh
2Ah
4
13 0B 00
00
2835 pixel/mét
chiều dọc
72 DPI x 39,3701 inch mỗi
mét mang lại 2834,6472
2Eh
4
00 00 00
00
0 màu sắc
Số lượng màu trong bảng
màu
32h
4
00 00 00
00
0 màu quan trọng
0 có ý nghĩa tất cả màu đều
quan trọng
Bắt đầu mảng Pixel (dữ liệu bitmap)
36h
3
00 00 FF
0 0 255
Đỏ, pixel (0,1)
39h
3
FF FF FF
255 255 255
Trắng, pixel (1,1)
3Ch
2
00 00
00
Đệm cho căn chỉnh 4 bytes
(có thể là giá trị khác 0)
3En
3
FF 00 00
255 0 0
Màu xanh dương, pixel
(0,0)
6
41h
3
00 FF 00
0 255 0
Màu xanh lá cây, pixel (1,0)
44h
2
00 00
00
Đệm cho căn chỉnh 4 bytes
(có thể là giá trị khác 0)
7