Tải bản đầy đủ (.docx) (7 trang)

Tìm hiểu cấu trúc header của file BMP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (121.11 KB, 7 trang )

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



×