Bài tập mẫu về đề tài: Tìm hiểu cấu trúc header của file BMP. Được trình bày ngắn gọn, xúc tích, dễ hiểu và đầy đủ. Nhận được đánh giá tốt trong thang điểm của giảng viên khi thuyết trình hoặc làm bài tập báo cáo. Phù hợp với các bạn sinh viên sử dụng trong học tập cũng như nhân viên cần thuyết trình hoặc hỗ trợ giảng dạy.
Trang 1MỤC LỤC
1 Giới thiệu 3
2 Các thuộc tính tiêu biểu của một tập tin ảnh bitmap 3
3 Cấu trúc tập tin bitmap 3
4 Đặc điểm tập tin bitmap 4
5 Cấu trúc Header 4
6 Ví dụ về BMP 6
Trang 2TRÌ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
Trang 3- 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
Đặ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
Trang 4đó 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:
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
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ỏ
Trang 506 6 2 Dự trữ, giá trị tùy thuộc vào ứng
dụng tạo ra file hình ảnh
dụng tạo ra file hình ảnh
6 Ví dụ về BMP
Offset
Kích thước
(byte)
Giá trị Hex Giá trị Mục đích
BMP header
00 70 bytes (54+16) Kích thước của tệp
Trang 66h 2 00 00 Không sử dụng Ứng dụng cụ thể
00 54 bytes (14+40)
Nơi mảng pixel dữ liệu có
thể tìm thấy DIB header
Số bytes trong DIB header
từ đây
00
2 pixel (từ trang sang phải)
Chiều rộng của bitmap tình
bằng pixel
00
2 pixel (từ dưới lên)
Chiều cao của bitmap tính
bằng pixel
đang được sử dụng
BI_RBG, không nén mảng
pixel
Kích thước của dữ liệu
bitmap thô
00
2835 pixel/mét chiều ngang
Độ phân giải in của hình
ảnh
72 DPI x 39,3701 inch mỗi mét mang lại 2834,6472
00
2835 pixel/mét chiều dọc
Trang 72Eh 4 00 00 00
Số lượng màu trong bảng
màu
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)
39h 3 FF FF FF 255 255 255 Trắng, pixel (1,1)
(có thể là giá trị khác 0)
(0,0) 41h 3 00 FF 00 0 255 0 Màu xanh lá cây, pixel (1,0)
(có thể là giá trị khác 0)