BMP_IO
Microsoft BMP bitmap files
Read and Write Utilities
BMP_IO
is a C++ library which
reads or writes the graphics information in
a Microsoft BMP file.
A user program can employ these routines to read a BMP file
and extract and return the graphics information (RGB pixel arrays),
or to write internal RGB pixel arrays into a properly formatted BMP file.
The BMP file format is used for many of the icons seen
cluttering up the desktop of a Windows machine, for instance.
Of course, another interesting application is to read in a BMP file,
and write out the RGB information to a file in another format.
Since some of the data is multibyte, the format of the file can
depend on whether such data is written with the bytes in
"little-endian" or "big-endian" order. The program maintains a
variable called BMP_BYTE_SWAP which controls how the program
assumes the bytes are ordered. Setting this variable to
true show be the appropriate value for little-endian ordering,
while false is for big-endian. This variable can be read
by calling the function bmp_byte_swap_get, or set by calling
bmp_byte_swap_set.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
BMP_IO is available in
a C++ version.
Related Data and Programs:
BMP,
a data directory which
contains example BMP files.
BMP_TO_PPMA,
a C++ program which
converts BMP files to ASCII PPM format.
BMP_TO_PPMB,
a C++ program which
converts BMP files to binary PPM format.
PPMA_TO_BMP,
a C++ program which
converts ASCII PPM files to BMP format.
PPMB_TO_BMP,
a C++ program which
converts binary PPM files to BMP format.
Reference:
-
David Kay and John Levine,
Graphics File Formats,
Second Edition,
McGraw Hill, 1995.
-
John Miano,
Compressed Image File Formats,
Addison Wesley, 1999.
-
Microsoft Corporation,
Microsoft Windows Programmer's Reference,
Volume 5; Messages, Structures, and Macros,
Microsoft Press, 1993.
Source Code:
Examples and Tests:
-
bmp_io_prb.cpp, a calling program;
-
bmp_io_prb.sh,
commands to compile, link and run the calling program;
-
bmp_io_prb_output.txt,
output from a run of the calling program;
-
bmp_08.bmp,
a monochrome (8 bits per pixel) BMP file created by the
calling program;
-
bmp_24.bmp,
a three color (24 bits per pixel) BMP file created by the
calling program;
List of Routines:
-
BMP_BYTE_SWAP_GET returns the internal value of BMP_BYTE_SWAP.
-
BMP_BYTE_SWAP_SET sets the internal value of BMP_BYTE_SWAP.
-
BMP_08_DATA_READ reads 8 bit image data of the BMP file.
-
BMP_08_DATA_WRITE writes 8 bit image data to a BMP file.
-
BMP_24_DATA_READ reads 24 bit image data of the BMP file.
-
BMP_24_DATA_WRITE writes 24 bit image data to the BMP file.
-
BMP_HEADER1_PRINT prints the header information of a BMP file.
-
BMP_HEADER1_READ reads the header information of a BMP file.
-
BMP_HEADER1_WRITE writes the header information to a BMP file.
-
BMP_HEADER2_PRINT prints the bitmap header information of a BMP file.
-
BMP_HEADER2_READ reads the bitmap header information of a BMP file.
-
BMP_HEADER2_WRITE writes the bitmap header information to a BMP file.
-
BMP_PALETTE_PRINT prints the palette data in a BMP file.
-
BMP_PALETTE_READ reads the palette information of a BMP file.
-
BMP_PALETTE_WRITE writes the palette data to the BMP file.
-
BMP_PRINT_TEST tests the BMP print routines.
-
BMP_READ reads the header and data of a BMP file.
-
BMP_READ_TEST tests the BMP read routines.
-
BMP_08_WRITE writes the header and data for a monochrome BMP file.
-
BMP_08_WRITE_TEST tests the BMP write routines.
-
BMP_24_WRITE writes the header and data for a BMP file using three colors.
-
BMP_24_WRITE_TEST tests the BMP write routines.
-
LONG_INT_READ reads a long int from a file.
-
LONG_INT_WRITE writes a long int to a file.
-
U_LONG_INT_READ reads an unsigned long int from a file.
-
U_LONG_INT_WRITE writes an unsigned long int to a file.
-
U_SHORT_INT_READ reads an unsigned short int from a file.
-
U_SHORT_INT_WRITE writes an unsigned short int to a file.
You can go up one level to
the C++ source codes.
Last revised on 09 December 2005.