Leptonica  1.83.1
Image processing and image analysis suite
bmp.h
Go to the documentation of this file.
1 /*====================================================================*
2  - Copyright (C) 2001 Leptonica. All rights reserved.
3  -
4  - Redistribution and use in source and binary forms, with or without
5  - modification, are permitted provided that the following conditions
6  - are met:
7  - 1. Redistributions of source code must retain the above copyright
8  - notice, this list of conditions and the following disclaimer.
9  - 2. Redistributions in binary form must reproduce the above
10  - copyright notice, this list of conditions and the following
11  - disclaimer in the documentation and/or other materials
12  - provided with the distribution.
13  -
14  - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15  - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16  - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
17  - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY
18  - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19  - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20  - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21  - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22  - OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
23  - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24  - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  *====================================================================*/
26 
27 #ifndef LEPTONICA_BMP_H
28 #define LEPTONICA_BMP_H
29 
45 /*-------------------------------------------------------------*
46  * BMP file header *
47  *-------------------------------------------------------------*/
48 
68 {
69  l_uint8 bfType[2];
70  l_uint8 bfSize[4];
76  l_uint8 bfReserved1[2];
77  l_uint8 bfReserved2[2];
78  l_uint8 bfOffBits[4];
79 };
80 typedef struct BMP_FileHeader BMP_FH;
81 
83 #define BMP_FHBYTES sizeof(BMP_FH)
84 
85 
86 /*-------------------------------------------------------------*
87  * BMP info header *
88  *-------------------------------------------------------------*/
89 
92 {
93  l_int32 biSize;
94  l_int32 biWidth;
95  l_int32 biHeight;
96  l_int16 biPlanes;
97  l_int16 biBitCount;
98  l_int32 biCompression;
99  l_int32 biSizeImage;
100  l_int32 biXPelsPerMeter;
101  l_int32 biYPelsPerMeter;
102  l_int32 biClrUsed;
103  l_int32 biClrImportant;
104 };
105 typedef struct BMP_InfoHeader BMP_IH;
106 
108 #define BMP_IHBYTES sizeof(BMP_IH)
109 
110 
111 /*-------------------------------------------------------------*
112  * Align BMP headers on 4 byte boundaries *
113  *-------------------------------------------------------------*/
114 
117 #if defined(__GNUC__)
118 typedef struct __attribute__((__packed__)) {
119  BMP_FH bmpfh;
120  BMP_IH bmpih;
121 } BMP_HEADER;
122 #endif
123 
124 #endif /* LEPTONICA_BMP_H */
l_uint8 bfOffBits[4]
Definition: bmp.h:78
l_uint8 bfSize[4]
Definition: bmp.h:70
l_uint8 bfReserved2[2]
Definition: bmp.h:77
l_uint8 bfType[2]
Definition: bmp.h:69
l_uint8 bfReserved1[2]
Definition: bmp.h:76
l_int32 biSizeImage
Definition: bmp.h:99
l_int32 biXPelsPerMeter
Definition: bmp.h:100
l_int32 biClrImportant
Definition: bmp.h:103
l_int32 biClrUsed
Definition: bmp.h:102
l_int32 biSize
Definition: bmp.h:93
l_int32 biYPelsPerMeter
Definition: bmp.h:101
l_int16 biPlanes
Definition: bmp.h:96
l_int32 biWidth
Definition: bmp.h:94
l_int16 biBitCount
Definition: bmp.h:97
l_int32 biHeight
Definition: bmp.h:95
l_int32 biCompression
Definition: bmp.h:98