Cấu trúc file ảnh BMP

Font size: Decrease font Enlarge font

Trong đồ họa máy vi tính, BMP 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 BMP thường có đuôi là .BMP hoặc .DIB (Device Independent 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.

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.

Đặ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).

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ạng Internet (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.

(source: vn.wikipedia.org)

Cụ thể:

-          Header:

Type;

2

File type. Set to “BM”.

Size;

4

Size in BYTES of the file.

Reserved;

4

Reserved. Set to zero.

Offset;

4

Offset to the data.

-          Information:

HeaderSize;

4

Size of rest of header. Set to 40.

Width;

4

Width of bitmap in pixels.

Height;

4

Height of bitmap in pixels.

Planes;

2

Number of Planes. Set to 1.

BitsPerPixel;

2

Number of bits per pixel.

Compression;

4

Compression. Usually set to 0.

SizeImage;

4

Size in bytes of the bitmap.

XPixelsPerMeter;

4

Horizontal pixels per meter.

YPixelsPerMeter;

4

Vertical pixels per meter.

ColorsUsed;

4

Number of colors used.

ColorsImportant;

4

Number of “important” colors.

Dưới đây là ví dụ:

/*******************************************************************************

* Microsoft Windows bitmap (BMP) file format

*

* Uncompressed 256-color BMP

*

*       00000   42 4D          magic, `BM’                    \

*       00002   36 B4 04 00    file size, 0×04B436 308278     |

*       00006   00 00 00 00    (reserved)                     |

*       0000A   36 04 00 00    header + color map size, 1078  |

*                                                            |

*       0000E   28 00 00 00    this subheader size, 40               |

*       00012   80 02 00 00    image width, 640 pixels               |

*       00016   E0 01 00 00    image depth, 480 pixels               |

*       0001A   01 00          number of bit planes, 1               |

*       0001C   08 00          bits per pixel, 8 (256 colors) |

*       0001E   00 00 00 00    compression type, 0 (none)     |

*       00022   00 00 00 00    image size, bytes (or zero)    |

*       00026   00 00 00 00    X pels per meter, 0            |

*       0002A   00 00 00 00    Y pels per meter, 0            |

*       0002E   00 00 00 00    colors used (or zero)          |

*       00032   00 00 00 00    important colors (or zero)     /

*

*       00036   21 21 21 00    RGB for color 00 (b,g,r,a)     \

*       0003A   F2 21 21 00    RGB for color 01               |

*       0003E   21 F2 21 00    RGB for color 02               +- RGB map

*         :     :             :      :                      |

*       00432   F2 F3 F2 00    RGB for color FF               /

*

*       00436   08 08 08 08    pixel data bytes (one byte per pixel)

*         :     :             :      (left to right, bottom to top)

*       006B6   00             :      (end of line padding, even byte)

*         :     :             :

*       4B430   08 08 08 08    :

*       4B434   08 08          :

*       4B436                  end of file

*

*       0000.0000  42 4D 36 04 00 00 00 00  00 00 36 04 00 00 28 00

*       0000.0010  00 00 80 02 00 00 E0 01  00 00 01 00 08 00 00 00

*       0000.0020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00

*       0000.0030  00 00 00 00 00 00|21 21  21 00 F2 21 21 00 21 F2

*       0000.0040  21 00 F2 F2 21 00 21 21  F2 00 F2 21 F2 00 21 80

*       0000.0050  F2 00 F2 F2 F2 00 80 80  80 00 F2 80 80 00 80 F2

*       0000.0060  80 00 F2 F2 80 00 80 80  F2 00 F2 80 F2 00 80 F2

*       0000.0070  F2 00 F2 F2 F2 00 21 21  21 00 2E 21 29 00 44 21

*       0000.0080  21 00 55 21 21 00 4E 21  2E 00 4E 44 21 00 55 21

*           :

*           :

*       0000.0400  F1 00 DC EA F1 00 D4 F2  F1 00 F2 F2 F1 00 EA F2

*       0000.0410  F1 00 EA F2 F1 00 DC F2  F1 00 F2 F2 F1 00 EA F2

*       0000.0420  F1 00 F2 F1 F1 00 F2 F1  F2 00 F1 F2 F1 00 F2 F2

*       0000.0430  F2 00 F2 F3 F2 00|08 08  08 08 08 08 08 08 08 08

*       0000.0440  08 08 08 08 08 08 08 08  08 08 08 08 08 08 08 08

*           :

*           :

*       0000.06B0  08 08 08 08 08 08|08 08  08 08 08 08 08 08 08 08

*       0000.06C0  08 08 08 08 08 08 08 08  08 08 08 08 08 08 08 08

*           :

*           :

*       0004.B400  08 08 08 08 08 08 08 08  08 08 08 08 08 08 08 08

*       0004.B410  08 08 08 08 08 08 08 08  08 08 08 08 08 08 08 08

*       0004.B420  08 08 08 08 08 08 08 08  08 08 08 08 08 08 08 08

*       0004.B430  08 08 08 08 08 08|

*/

/*******************************************************************************

* Uncompressed 24-bit color BMP

*

*       00000   42 4D          id             `BM’

*       00002   EB 02 00 00    filesize       747

*       00006   00 00 00 00    r              00 00 00 00

*       0000A   36 00 00 00    headersize     54

*

*       0000E   28 00 00 00    infosize       40      \

*       00012   17 00 00 00    width          23      |

*       00016   14 00 00 00    depth          20      |

*       0001A   01 00          biplanes       1       |

*       0001C   18 00          bits           24      |

*                                                    |

*       0001E   00 00 00 00    compression    0=none  +- info

*       00022   A0 05 00 00    sizeimage      1440    |

*       00026   61 0F 00 00    Xpels          3937    |

*       0002A   61 0F 00 00    Ypels          3937    |

*       0002E   00 00 00 00    clrused        0       |

*       00032   00 00 00 00    clrimportant   0       /

*

*       (no color map)

*

*       00036                  line 19, RGB pixel data (b,g,r)

*              FF FE FF  FF FF FF  FF FF FF  FF FF FF  FF FF FF

*              FF FE FF  FF FF FF  FF FF FF  FF FF FE  FF FF FE

*              FF FE FF  FF FE FF  FF FF FF  FF FD FF  FF FE FE

*              FF FF FF  FF FF FF  FF FF FF  FF FF FF  FF FF FF

*              FF FF FF  FF FF FF  FF FF FF

*              00 14 01

*       0007E                  line 18

*              FF FE FF  FF FF FF  FF FF FF  FF FF FF  FF FF FF

*              FF FE FF  FF FF FF  FF FF FF  FF FF FF  FF FF FF

*              FF FF FF  FF FF FF  FF FF FF  FF FF FF  FF FF FF

*              FF FF FF  FF FF FF  FF FF FF  FF FF FF  FF FF FF

*              FF FF FF  FF FF FF  FF FF FF

*              00 14 01

*       000C6                  line 17

*         :

*         :

*       0058E                  line 0

*               FF FE FF  FF FF FF  FF FE FF  FE FE FF  FF FF FF

*              FF FF FF  FF FF FF  FF FF FF  FF FF FF  FF FF FF

*              FF FE FF  FF FE FF  FF FF FF  FF FF FF  FF FF FF

*              FF FF FF  FF FF FF  FF FF FF  FF FF FF  FF FF FF

*              FF FF FF  FF FF FF  FF FF FF

*              00 14 01

*       005D6

*/

Tags: , ,

Add to: Add to your del.icio.us Digg this story Add to your Twitter Add to your Google Bookmark Add to your Facebook Add to your MySpace
Số lượt xem: 467

Gửi nhận xét:comment

 *
 *