CoreComponents 3.0.0
A Modern C++ Toolkit
Loading...
Searching...
No Matches
Bmp Class Referencefinal

Read and write bitmap image files (BMP file format in local endian ARGB pixel format) More...

#include <cc/Bmp>

Inheritance diagram for Bmp:

Static Public Member Functions

static bool detect (const Bytes &data, Out< int > width=None{}, Out< int > height=None{})
 
static Image map (const String &path)
 Map bitmap image file into memory.
 
static Image decode (const Bytes &data)
 Load image from BMP encoded data.
 
static void encode (const Stream &stream, const Image &image)
 
static void save (const String &path, const Image &image)
 

Additional Inherited Members

- Public Member Functions inherited from Object
 Object ()=default
 Create a null object.
 
 operator bool () const
 Check if this is a non-null object.
 
bool isNull () const
 Check if this is a null object.
 
template<class T >
bool is () const
 Check if this object is of type T.
 
template<class T >
as () const
 Cast this object to type T.
 
bool isWeak () const
 Check if the underlying object reference is weak.
 
bool operator== (const Object &other) const
 Equality operator.
 
std::strong_ordering operator<=> (const Object &other) const
 Ordering operator.
 
long useCount () const
 Reference count.
 
- Protected Member Functions inherited from Object
template<class T >
weak () const
 
template<class T >
void initOnce ()
 Create the object state when called the first time.
 
template<class T >
void initOncePerThread ()
 Create a distinct object state for each thread when called the first time in that thread.
 
 Object (State *newState)
 Initialize object with newState.
 
 Object (State *state, Alias)
 
 Object (State *state, Weak)
 
Objectoperator= (std::nullptr_t)
 
- Static Protected Member Functions inherited from Object
template<class T >
static T alias (const State *state)
 Create an alias object for the given state.
 
template<class T >
static T weak (const State *state)
 
- Protected Attributes inherited from Object
Handle< Stateme
 Internal object state
 

Detailed Description

Read and write bitmap image files (BMP file format in local endian ARGB pixel format)

Member Function Documentation

◆ map()

Image map ( const String & path)
static

Map bitmap image file into memory.

Parameters
pathFile path of the image to load
Exceptions
BmpError
SystemResourceError

◆ decode()

Image decode ( const Bytes & data)
static

Load image from BMP encoded data.

◆ encode()

void encode ( const Stream & stream,
const Image & image )
static

Because the image data is copied out of memory and is always in local endian ARGB we use big endian for the bitfield masks only on little endian systems. Thereby the byte order of the image data automatically fits to the masks although we do not explicity map the byte oder of the image pixels. This allows image files generated on big endian system to be directly memory mapped on big endian systems and image files generated on little endian systems to be directly memory mapped on little endian systems. In any case a correct BMP file is generated, readable with any external tool supporting the Windows BMP file format.