GraphicsMagick: coders/bmp.c Reveal a contents of OS22XBITMAPHEA...

GraphicsMagick Commits <[email protected]> Sat, 19 Aug 2023 08:12:51 -0500
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.10514.1692450782.1439.graphicsmagick-commit@lists.sourceforge.net>
changeset a94c4fc24e8c in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=a94c4fc24e8c
summary: coders/bmp.c Reveal a contents of OS22XBITMAPHEADER.

diffstat:

 ChangeLog    |   4 ++++
 coders/bmp.c |  35 +++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 0 deletions(-)

diffs (56 lines):

diff -r 936b3e87f6f1 -r a94c4fc24e8c ChangeLog
--- a/ChangeLog	Fri Aug 18 08:09:34 2023 -0500
+++ b/ChangeLog	Sat Aug 19 15:12:22 2023 +0200
@@ -1,3 +1,7 @@
+2023-08-19  Fojtik Jaroslav  <[email protected]>
+
+	* coders/bmp.c Reveal a contents of OS22XBITMAPHEADER.
+
 2023-08-17  Fojtik Jaroslav  <[email protected]>
 
 	* coders/bmp.c Do not throttle on native low endian systems.
diff -r 936b3e87f6f1 -r a94c4fc24e8c coders/bmp.c
--- a/coders/bmp.c	Fri Aug 18 08:09:34 2023 -0500
+++ b/coders/bmp.c	Sat Aug 19 15:12:22 2023 +0200
@@ -817,6 +817,41 @@
                                     "  Important colors: %u",bmp_info.colors_important);
             }
 
+          if(bmp_info.size==64)
+            {				/* OS22XBITMAPHEADER */
+              magick_uint16_t   Units;            /* Type of units used to measure resolution */
+              magick_uint16_t   Reserved;         /* Pad structure to 4-byte boundary */
+              magick_uint16_t   Recording;        /* Recording algorithm */
+              magick_uint16_t   Rendering;        /* Halftoning algorithm used */
+              magick_uint32_t  Size1;            /* Reserved for halftoning algorithm use */
+              magick_uint32_t  Size2;            /* Reserved for halftoning algorithm use */
+              magick_uint32_t  ColorEncoding;    /* Color model used in bitmap */
+              magick_uint32_t  Identifier;       /* Reserved for application use */
+              Units = ReadBlobLSBShort(image);
+              Reserved = ReadBlobLSBShort(image);
+              Recording = ReadBlobLSBShort(image);
+              Rendering = ReadBlobLSBShort(image);
+              Size1 = ReadBlobLSBLong(image);
+              Size2 = ReadBlobLSBLong(image);
+              ColorEncoding = ReadBlobLSBLong(image);
+              Identifier = ReadBlobLSBLong(image);
+
+              if(logging)
+                  (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+                              "  OS22XBITMAPHEADER header: %u\n"
+                              "    Units: %u\n"
+                              "    Reserved: %u"
+                              "    Recording: %u\n"
+                              "    Rendering: %u\n"
+                              "    Size1: %u\n"
+                              "    Size2: %u\n"
+                              "    ColorEncoding: %u\n"
+                              "    Identifier: %u",
+                              Units, Reserved, Recording, Rendering,
+                              Size1, Size2, ColorEncoding, Identifier);
+
+            }
+
           if (bmp_info.size >= 52 && bmp_info.size!=64)
             {
               bmp_info.red_mask=ReadBlobLSBLong(image);