diff --git a/firmware/application/apps/ui_ss_viewer.cpp b/firmware/application/apps/ui_ss_viewer.cpp index 4cb41c429..67ead2955 100644 --- a/firmware/application/apps/ui_ss_viewer.cpp +++ b/firmware/application/apps/ui_ss_viewer.cpp @@ -58,7 +58,7 @@ void ScreenshotViewer::paint(Painter& painter) { } // Screenshots from PNGWriter are all this size. - if (file.size() != 232383) { + if ((file.size() != 232383 && screen_width == 240) || (screen_width == 320 && file.size() != 463743)) { show_invalid(); return; } diff --git a/firmware/common/png_writer.cpp b/firmware/common/png_writer.cpp index 3251bad4b..581720586 100644 --- a/firmware/common/png_writer.cpp +++ b/firmware/common/png_writer.cpp @@ -80,7 +80,8 @@ Optional PNGWriter::create( png_ihdr_dyn[14] = (height >> 8) & 0xFF; png_ihdr_dyn[15] = height & 0xFF; crc.reset(); - crc.process_bytes(png_ihdr_dyn.data(), 25); + crc.process_bytes(&png_ihdr_dyn[4], 4); // Process chunk type "IHDR" + crc.process_bytes(&png_ihdr_dyn[8], 13); // Process chunk data uint32_t crci = crc.checksum(); png_ihdr_dyn[21] = (crci >> 24) & 0xFF;