diff --git a/build-artifacts/mag160c_demo3.exe b/build-artifacts/mag160c_demo3.exe index cd79829..2cc60e2 100644 --- a/build-artifacts/mag160c_demo3.exe +++ b/build-artifacts/mag160c_demo3.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0a85090dc4c671f8686097fca408b7df98f5105aca6c399a21c91b947cf61699 +oid sha256:7871c752e49f5f5af71920ac63d072997008a5781f6aea0e35eb1eb1d4744441 size 140785 diff --git a/csdk/src/mag160c_render.c b/csdk/src/mag160c_render.c index 9ba9e89..dfb34a7 100644 --- a/csdk/src/mag160c_render.c +++ b/csdk/src/mag160c_render.c @@ -626,12 +626,12 @@ mag160c_error_t mag160c_render_frame(mag160c_render_t *r, const uint8_t *frame, if (r->post_gray_cb) r->post_gray_cb(r->post_gray_user, r->gray160); upscale2x(r); - /* palette colorize 320x240 */ + /* palette colorize 320x240 (palette is B,G,R -> swap to RGB24 out) */ for (int i = 0; i < r->npix * 4; ++i) { unsigned char gv = r->gray320[i]; - out_rgb[i * 3 + 0] = mag160c_official_palette256[gv][0]; + out_rgb[i * 3 + 0] = mag160c_official_palette256[gv][2]; out_rgb[i * 3 + 1] = mag160c_official_palette256[gv][1]; - out_rgb[i * 3 + 2] = mag160c_official_palette256[gv][2]; + out_rgb[i * 3 + 2] = mag160c_official_palette256[gv][0]; } return MAG160C_OK; } diff --git a/csdk/tools/mag160c_linux_demo.c b/csdk/tools/mag160c_linux_demo.c index 30e5183..def7ff3 100644 --- a/csdk/tools/mag160c_linux_demo.c +++ b/csdk/tools/mag160c_linux_demo.c @@ -102,8 +102,13 @@ static void save_bmp(const char *path, const uint8_t *rgb, int w, int h) { FILE *f = fopen(path, "wb"); if (!f) return; fwrite(bmp, 1, 54, f); - for (int y = h - 1; y >= 0; --y) - fwrite(rgb + (size_t)y * w * 3, 1, (size_t)w * 3, f); + for (int y = h - 1; y >= 0; --y) { + const uint8_t *row = rgb + (size_t)y * w * 3; + for (int x = 0; x < w; ++x) { + uint8_t bgr[3] = { row[x * 3 + 2], row[x * 3 + 1], row[x * 3] }; + fwrite(bgr, 1, 3, f); + } + } fclose(f); }