From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Thu, 23 Nov 2023 14:22:05 +0000 (-0700) Subject: fix errors in gpi writer related to bitmaps. (#1243) X-Git-Tag: archive/raspbian/1.10.0+ds-2+rpi1~1^2~12^2^2~124 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c22c7203d8e44d74a42705f7a3cbbd89cfb66335;p=gpsbabel.git fix errors in gpi writer related to bitmaps. (#1243) Erroneous warnings "garmin_gpi: Code error in load_bitmap_from_file, expected output size 1060, actual output -28." Corrupted colors when input bitmap has 24 bits per pixel. --- diff --git a/garmin_gpi.cc b/garmin_gpi.cc index a936cd373..3877de63c 100644 --- a/garmin_gpi.cc +++ b/garmin_gpi.cc @@ -1145,7 +1145,6 @@ GarminGPIFormat::load_bitmap_from_file(const char* fname, const unsigned char** } ptr = (unsigned char*) xmalloc(sz); - const unsigned char* const startptr = ptr; dest_h = (gpi_bitmap_header_t*)ptr; *data = ptr; *data_sz = sz; @@ -1176,8 +1175,8 @@ GarminGPIFormat::load_bitmap_from_file(const char* fname, const unsigned char** unsigned char* p = ptr; for (j = 0; j < src_h.width; j++) { - int color = (int32_t)gbfgetint16(f) | (gbfgetc(f) << 16); - le_write32(p, color); + gbfread(p, 1, 3, f); + p[3] = 0x00; p += 4; } for (j = (src_h.width * src_h.bpp) / 8; j < src_line_sz; j++) { @@ -1202,10 +1201,6 @@ GarminGPIFormat::load_bitmap_from_file(const char* fname, const unsigned char** } } - auto bytesout = ptr - startptr; - if (bytesout != *data_sz) { - warning(MYNAME ": Code error in load_bitmap_from_file, expected output size %d, actual output %td.", *data_sz, bytesout); - } gbfclose(f); }