@@ -392,46 +392,45 @@ bool OpenStreetMap::saveMap(const char *filename, LGFX_Sprite &sprite, String &r
392
392
uint32_t biClrImportant = 0 ;
393
393
394
394
// 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));
412
411
413
412
for (int y = 0 ; y < sprite.height (); y++)
414
413
{
415
414
for (int x = 0 ; x < sprite.width (); x++)
416
415
{
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 ;
421
420
422
421
// 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 ;
426
425
427
- file.write (b );
428
- file.write (g );
429
- file.write (r );
426
+ file.write (blue8 );
427
+ file.write (green8 );
428
+ file.write (red8 );
430
429
}
431
430
}
432
431
433
432
file.close ();
434
433
SD.end ();
435
434
result = " Screenshot saved" ;
436
435
return true ;
437
- }
436
+ }
0 commit comments