22An exhaustive BMP Loader, MIT-licensed, implemented for c++14 and c++20
33
44This BMP loader library decodes ** Windows** BMP files encoded according to
5- BMP format versions 1 up to 5, as well as the specific * OS/2 .x* and * OS/2
5+ BMP format versions 1 up to 5, as well as the specific * OS/2 1 .x* and * OS/2
662.x* BMP (* BitMaP* ) and BA (* Bitmap multi images Array* ) file formats.
77
88It nevertheless currently does not decode JPEG and PNG encoded images that
@@ -11,12 +11,12 @@ color profiles.
1111
1212## Genesis of this project
1313The genesis of this project is the initial creation of another library that
14- needed to be associate with an external library for loading BMP images under
14+ needed to be associated with an external library for loading BMP images under
1515the ** MIT license** or from the public domain, free of rights, to associate
1616them with icons.
1717
1818Unfortunately, no such library has been found under this type of license that
19- would provide the docoding of ** all** the different standardized formats of
19+ would provide for the decoding of ** all** the different standardized formats of
2020BMP images.
2121
2222## CppBMPLoader is the implemented solution
@@ -30,7 +30,8 @@ can be found on *GitHub*, programmed in c++ or in other programming languages.
3030## c++14 and c++20 versions
3131Initially, two versions of the library are offerred, one responding to standard
3232c++14 and the other responding to standard c++20 (offering more advanced
33- programming concepts, e.g. * ranges* and * views* or STL extensions).
33+ programming concepts, e.g. * ranges* and * views* or STL extensions).
34+
3435Notice: by November 2024, the c++20 version of the library is not yet released.
3536
3637## Notice (1/2)
@@ -56,14 +57,14 @@ the library.
5657
5758Shortly speeking, this API offers a templated class BMPImage<> for the loading
5859of BMP images content and classes and functions to extract and load all images
59- from a ** BA** file or just the one of them that best fits size , colors and/or
60- resolution criterias.
60+ from a ** BA** file or just the one of them that best fits dimensions , colors
61+ and/or resolutions criterias.
6162
6263Many error cases and warnings are detected by ** CppBMPLoader** . Errors are always
6364fatal. Execution stops on any encountered error. Warnings do not stop your
6465application and are accumulated along the processing of BMP and BA files. You
6566get access to the error code and to a list of warning codes as well to the
66- associated messages at will since they are attached to faulty BMP images.
67+ associated messages at will, since they are attached to the faulty BMP images.
6768
6869
6970# Reading the code
@@ -75,11 +76,13 @@ The design decision made for its first implementation, a.k.a. cpp-14, has been
7576to factorize as much code as possible. This was a tremendous decision when at
7677bugs fixing time: each bug had to be fixed in one and only one place. This was
7778also a very deceptive decision about the final readability of the code. So, you
78- should avoid to have a first look at this code: prefer to go into the c++20
79- implementation of ** CppBMPLoader** to have a far easier reading of it. There,
80- we've preferred to duplicate the already debugged code, to provide a clear
81- class for each type of object that is internally managed by the library.
79+ should avoid to have a first look at this code. Prefer to go into the c++20
80+ implementation of ** CppBMPLoader** instead to have a far easier reading of it.
81+ There, we've preferred to duplicate the already debugged code, to provide a
82+ clear class for each type of object and for each format version that is
83+ internally managed by the library.
8284
8385Meanwhile, experienced c++ developers should get no trouble in understanding
84- the directories tree structure and the code itself as well.
86+ the directories tree structure and the code itself as well, which is
87+ commented everywhere it seemed to be useful.
8588See directories ** cpp-14** or ** cpp-20** and enjoy!
0 commit comments