@@ -41,7 +41,7 @@ void BMP::Decoder::decode()
4141 decode_info_header_v5 ();
4242 break ;
4343 default :
44- throw UnsupportedVersionException ( " Cannot decode headers of size " + std::to_string (header_size) + " ." ) ;
44+ throw UnsupportedVersionException { " Cannot decode headers of size " + std::to_string (header_size) + " ." } ;
4545 }
4646
4747 decode_color_table ();
@@ -221,10 +221,10 @@ void BMP::Decoder::decode_pixel_array_16_bpp()
221221{
222222 if (settings.compression == Compression::RGB)
223223 {
224- settings.bitmask_a = Bitmask ( 0b0000000000000000 ) ;
225- settings.bitmask_r = Bitmask ( 0b0000000000111110 ) ;
226- settings.bitmask_g = Bitmask ( 0b0000011111000000 ) ;
227- settings.bitmask_b = Bitmask ( 0b1111100000000000 ) ;
224+ settings.bitmask_a = { 0b0000000000000000 } ;
225+ settings.bitmask_r = { 0b0000000000111110 } ;
226+ settings.bitmask_g = { 0b0000011111000000 } ;
227+ settings.bitmask_b = { 0b1111100000000000 } ;
228228 }
229229
230230 for (uint32_t y = 0 ; y < image.height ; ++y)
@@ -240,7 +240,7 @@ void BMP::Decoder::decode_pixel_array_16_bpp()
240240void BMP::Decoder::decode_pixel_array_24_bpp ()
241241{
242242 if (settings.compression == Compression::BITFIELDS)
243- throw DecodeException ( " The bitfields compression method is not allowed for 24bpp images." ) ;
243+ throw DecodeException { " The bitfields compression method is not allowed for 24bpp images." } ;
244244
245245 for (uint32_t y = 0 ; y < image.height ; ++y)
246246 {
@@ -256,10 +256,10 @@ void BMP::Decoder::decode_pixel_array_32_bpp()
256256{
257257 if (settings.compression == Compression::RGB)
258258 {
259- settings.bitmask_a = Bitmask ( 0x00000000 ) ;
260- settings.bitmask_r = Bitmask ( 0x0000ff00 ) ;
261- settings.bitmask_g = Bitmask ( 0x00ff0000 ) ;
262- settings.bitmask_b = Bitmask ( 0xff000000 ) ;
259+ settings.bitmask_a = { 0x00000000 } ;
260+ settings.bitmask_r = { 0x0000ff00 } ;
261+ settings.bitmask_g = { 0x00ff0000 } ;
262+ settings.bitmask_b = { 0xff000000 } ;
263263 }
264264
265265 for (uint32_t i = 0 ; i < image.width * image.height ; ++i)
@@ -268,10 +268,11 @@ void BMP::Decoder::decode_pixel_array_32_bpp()
268268
269269void BMP::Decoder::decode_one_pixel_bitmask (uint32_t value)
270270{
271- Pixel pixel (
272- ((value & settings.bitmask_r .value ) >> settings.bitmask_r .offset ) * (255 / settings.bitmask_r .divider ),
273- ((value & settings.bitmask_g .value ) >> settings.bitmask_g .offset ) * (255 / settings.bitmask_g .divider ),
274- ((value & settings.bitmask_b .value ) >> settings.bitmask_b .offset ) * (255 / settings.bitmask_b .divider ));
271+ Pixel pixel {
272+ (uint8_t )(((value & settings.bitmask_r .value ) >> settings.bitmask_r .offset ) * (255 / settings.bitmask_r .divider )),
273+ (uint8_t )(((value & settings.bitmask_g .value ) >> settings.bitmask_g .offset ) * (255 / settings.bitmask_g .divider )),
274+ (uint8_t )(((value & settings.bitmask_b .value ) >> settings.bitmask_b .offset ) * (255 / settings.bitmask_b .divider )),
275+ };
275276
276277 if (settings.bitmask_a .value != 0 )
277278 pixel.a = ((value & settings.bitmask_a .value ) >> settings.bitmask_a .offset ) * (255 / settings.bitmask_a .divider );
0 commit comments