@@ -392,46 +392,45 @@ bool OpenStreetMap::saveMap(const char *filename, LGFX_Sprite &sprite, String &r
392392    uint32_t  biClrImportant = 0 ;
393393
394394    //  Write BMP header
395-     file.write ((uint8_t  *)&bfType, 2 );
396-     file.write ((uint8_t  *)&bfSize, 4 );
397-     file.write ((uint8_t  *)&bfReserved, 2 );
398-     file.write ((uint8_t  *)&bfReserved, 2 );
399-     file.write ((uint8_t  *)&bfOffBits, 4 );
400- 
401-     file.write ((uint8_t  *)&biSize, 4 );
402-     file.write ((uint8_t  *)&biWidth, 4 );
403-     file.write ((uint8_t  *)&biHeight, 4 );
404-     file.write ((uint8_t  *)&biPlanes, 2 );
405-     file.write ((uint8_t  *)&biBitCount, 2 );
406-     file.write ((uint8_t  *)&biCompression, 4 );
407-     file.write ((uint8_t  *)&biSizeImage, 4 );
408-     file.write ((uint8_t  *)&biXPelsPerMeter, 4 );
409-     file.write ((uint8_t  *)&biYPelsPerMeter, 4 );
410-     file.write ((uint8_t  *)&biClrUsed, 4 );
411-     file.write ((uint8_t  *)&biClrImportant, 4 );
395+     file.write (reinterpret_cast <const  uint8_t *>(&bfType), sizeof (bfType));
396+     file.write (reinterpret_cast <const  uint8_t *>(&bfSize), sizeof (bfSize));
397+     file.write (reinterpret_cast <const  uint8_t *>(&bfReserved), sizeof (bfReserved));
398+     file.write (reinterpret_cast <const  uint8_t *>(&bfOffBits), sizeof (bfOffBits));
399+ 
400+     file.write (reinterpret_cast <const  uint8_t *>(&biSize), sizeof (biSize));
401+     file.write (reinterpret_cast <const  uint8_t *>(&biWidth), sizeof (biWidth));
402+     file.write (reinterpret_cast <const  uint8_t *>(&biHeight), sizeof (biHeight));
403+     file.write (reinterpret_cast <const  uint8_t *>(&biPlanes), sizeof (biPlanes));
404+     file.write (reinterpret_cast <const  uint8_t *>(&biBitCount), sizeof (biBitCount));
405+     file.write (reinterpret_cast <const  uint8_t *>(&biCompression), sizeof (biCompression));
406+     file.write (reinterpret_cast <const  uint8_t *>(&biSizeImage), sizeof (biSizeImage));
407+     file.write (reinterpret_cast <const  uint8_t *>(&biXPelsPerMeter), sizeof (biXPelsPerMeter));
408+     file.write (reinterpret_cast <const  uint8_t *>(&biYPelsPerMeter), sizeof (biYPelsPerMeter));
409+     file.write (reinterpret_cast <const  uint8_t *>(&biClrUsed), sizeof (biClrUsed));
410+     file.write (reinterpret_cast <const  uint8_t *>(&biClrImportant), sizeof (biClrImportant));
412411
413412    for  (int  y = 0 ; y < sprite.height (); y++)
414413    {
415414        for  (int  x = 0 ; x < sprite.width (); x++)
416415        {
417-             uint16_t  color  = sprite.readPixel (x, y); //  Read pixel color (RGB565 format)
418-             uint8_t  r  = (color  >> 11 ) & 0x1F ;
419-             uint8_t  g  = (color  >> 5 ) & 0x3F ;
420-             uint8_t  b  = color  & 0x1F ;
416+             uint16_t  rgb565Color  = sprite.readPixel (x, y); //  Read pixel color (RGB565 format)
417+             uint8_t  red5  = (rgb565Color  >> 11 ) & 0x1F ;
418+             uint8_t  green6  = (rgb565Color  >> 5 ) & 0x3F ;
419+             uint8_t  blue5  = rgb565Color  & 0x1F ;
421420
422421            //  Convert RGB565 to RGB888
423-             r  = (r  * 255 ) / 31 ;
424-             g  = (g  * 255 ) / 63 ;
425-             b  = (b  * 255 ) / 31 ;
422+             uint8_t  red8  = (red5  * 255 ) / 31 ;
423+             uint8_t  green8  = (green6  * 255 ) / 63 ;
424+             uint8_t  blue8  = (blue5  * 255 ) / 31 ;
426425
427-             file.write (b );
428-             file.write (g );
429-             file.write (r );
426+             file.write (blue8 );
427+             file.write (green8 );
428+             file.write (red8 );
430429        }
431430    }
432431
433432    file.close ();
434433    SD.end ();
435434    result = " Screenshot saved" 
436435    return  true ;
437- }
436+ }
0 commit comments