From 4bd97975eb303bcf1bd4c0b3f1884b1214f15ca1 Mon Sep 17 00:00:00 2001 From: "DESKTOP-PUHFO60\\dsx2016" Date: Mon, 19 Oct 2026 18:29:16 +0800 Subject: [PATCH] Keep album full-screen after GIF and reduce motion-region flicker. Unify STRETCH layout for all photos, decode GIF 1:1 with disposal restore, and ship a 160x120 sample GIF. Co-authored-by: Cursor --- CHANGELOG.md | 5 ++ README.md | 4 +- assets/photos/04_bounce.gif | Bin 8294 -> 16807 bytes firmware/cyd/VERSION.txt | 4 +- firmware/cyd/firmware.bin | Bin 652656 -> 652624 bytes src/photo_view.cpp | 106 +++++++++++++++++++++--------------- src/ui.cpp | 25 +++------ tools/make_test_photos.py | 20 ++++--- 8 files changed, 91 insertions(+), 73 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9dfbb60..a0242f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 2026-10-19 — GIF 动区闪 + 切回变小 + +- 显示统一全屏 STRETCH,离开 GIF 不再缩成小图。 +- GIF 1:1 合成 + disposal=2 恢复背景;样张改为 160×120。 + ## 2026-10-19 — GIF 去闪屏 - 双缓冲指针交换发布帧,避免 memcpy 半帧撕裂。 diff --git a/README.md b/README.md index 83c8ef4..9a32e50 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ ESP32-2432S028R 电子相册:从 TF 卡读取 **JPG / PNG / GIF**,触控切 ## 功能 - 扫描 TF 卡 `/photos` 与根目录的 `.jpg` / `.jpeg` / `.png` / `.gif` -- 半分辨率画布 160×120,全屏拉伸到 320×240(适配无 PSRAM 的 DRAM) -- JPG / PNG / GIF 按 cover 铺满画布(可裁边) +- 半分辨率画布 160×120,界面始终全屏 STRETCH 到 320×240 +- JPG / PNG cover 铺满;GIF 建议 ≤160×120(1:1 解码,减少动区闪烁) - **点左半屏 = 上一张,点右半屏 = 下一张**;底栏 `<` / `>` 同样切换 - GIF 自动播帧;右上角显示 TF 状态 - 串口 `#PUT` 传文件到卡(`tools/sd_put.py`) diff --git a/assets/photos/04_bounce.gif b/assets/photos/04_bounce.gif index 82b67b2e302c7a4599183ea8c593d7b77ee90c8e..66bf16fec910b5a4411f04f77292d5cc173fc84c 100644 GIT binary patch literal 16807 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 diff --git a/firmware/cyd/VERSION.txt b/firmware/cyd/VERSION.txt index 71ef430..343e094 100644 --- a/firmware/cyd/VERSION.txt +++ b/firmware/cyd/VERSION.txt @@ -1,5 +1,5 @@ name: CYD Photo album (cyd) -git: 5475be8 +git: 083a197 date: 2026-10-19 board: ESP32-2432S028R (ILI9341) features: jpg/png/gif album, SoftSPI touch, TF card @@ -12,5 +12,5 @@ offsets: sha256: bootloader.bin 3D234A7471F67B013686DABD4DEE7C1FA915C9928463616A94BC9297ACF1ABF8 boot_app0.bin F94C5D786A7A8FAB06AC5D10E33BF37711A6697636DC037559EA19CC410A17F0 - firmware.bin 2A437103D8933CA6ACDAA139336A68A227053E0B73D44FFA10FBB5115F6C7328 + firmware.bin A0FDF3B007C54E9B302690E5FCD96790A6610A74D39F1BDFB72A926C4114F815 partitions.bin 148B959CBFF1C38AA8E1D5C0BA9D612C54997B945E56A63F41223EEF650653A1 diff --git a/firmware/cyd/firmware.bin b/firmware/cyd/firmware.bin index dcc4f963df3f46609d487d79ad5939da61ad63b6..913370c0d4c9c0620f2d1da4a3071fdfd61d2970 100644 GIT binary patch delta 68078 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≷=X}iHS#43sWacB-9APD&B6uGfr<&3h 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 delta 67579 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

ruFI4-jYzd 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 } +// GIF disposal tracking (apply previous frame's disposal at start of next frame). +static uint8_t g_gif_pend_disposal = 0; +static int16_t g_gif_pend_x = 0; +static int16_t g_gif_pend_y = 0; +static int16_t g_gif_pend_w = 0; +static int16_t g_gif_pend_h = 0; +static uint16_t g_gif_bg565 = 0x0000; + +static void gif_fill_rect(uint16_t *dst, int x0, int y0, int w, int h, + uint16_t color) { + if (!dst || w <= 0 || h <= 0) { + return; + } + for (int y = y0; y < y0 + h; y++) { + if (y < 0 || y >= (int)CANVAS_H) { + continue; + } + for (int x = x0; x < x0 + w; x++) { + if (x < 0 || x >= (int)CANVAS_W) { + continue; + } + dst[(size_t)y * CANVAS_W + (size_t)x] = color; + } + } +} + +// 1:1 blit into canvas (centered / clipped). No per-frame downscale — that +// caused moving-region flicker with disposal + transparency. static void gif_draw(GIFDRAW *pDraw) { - if (!pDraw || !g_draw_dst || g_src_w <= 0 || g_dst_w <= 0) { + if (!pDraw || !g_draw_dst || g_src_w <= 0) { return; } if (g_gif_stop) { return; } - const int src_y = pDraw->iY + pDraw->y; uint16_t *dst = g_draw_dst; - // Fast path: 1:1 into canvas region - if (g_src_w == g_dst_w && g_src_h == g_dst_h) { - const int y = g_off_y + src_y; - if (y < 0 || y >= (int)CANVAS_H) { - return; + if (pDraw->y == 0) { + // Restore previous frame rect to background before drawing this frame. + if (g_gif_pend_disposal == 2) { + gif_fill_rect(dst, g_gif_pend_x, g_gif_pend_y, g_gif_pend_w, g_gif_pend_h, + g_gif_bg565); } - uint16_t *row = dst + (size_t)y * CANVAS_W + (size_t)g_off_x + pDraw->iX; - for (int x = 0; x < pDraw->iWidth; x++) { - const uint8_t idx = pDraw->pPixels[x]; - if (pDraw->ucHasTransparency && idx == pDraw->ucTransparent) { - continue; - } - row[x] = pDraw->pPalette[idx]; + g_gif_pend_disposal = pDraw->ucDisposalMethod; + g_gif_pend_x = (int16_t)(g_off_x + pDraw->iX); + g_gif_pend_y = (int16_t)(g_off_y + pDraw->iY); + g_gif_pend_w = (int16_t)pDraw->iWidth; + g_gif_pend_h = (int16_t)pDraw->iHeight; + if (pDraw->pPalette) { + g_gif_bg565 = pDraw->pPalette[pDraw->ucBackground]; } + } + + const int y = g_off_y + pDraw->iY + pDraw->y; + if (y < 0 || y >= (int)CANVAS_H) { return; } - // Scaled: only dest rows that sample this source line - int dy = 0; - while (dy < g_dst_h && (dy * g_src_h) / g_dst_h < src_y) { - dy++; - } - while (dy < g_dst_h && (dy * g_src_h) / g_dst_h == src_y) { - const int y = g_off_y + dy; - if (y >= 0 && y < (int)CANVAS_H) { - for (int dx = 0; dx < g_dst_w; dx++) { - const int sx = (dx * g_src_w) / g_dst_w; - const int lx = sx - pDraw->iX; - if (lx < 0 || lx >= pDraw->iWidth) { - continue; - } - const uint8_t idx = pDraw->pPixels[lx]; - if (pDraw->ucHasTransparency && idx == pDraw->ucTransparent) { - continue; - } - const int x = g_off_x + dx; - if (x < 0 || x >= (int)CANVAS_W) { - continue; - } - dst[(size_t)y * CANVAS_W + (size_t)x] = pDraw->pPalette[idx]; - } + const int x0 = g_off_x + pDraw->iX; + for (int i = 0; i < pDraw->iWidth; i++) { + const int x = x0 + i; + if (x < 0 || x >= (int)CANVAS_W) { + continue; } - dy++; + const uint8_t idx = pDraw->pPixels[i]; + if (pDraw->ucHasTransparency && idx == pDraw->ucTransparent) { + continue; + } + dst[(size_t)y * CANVAS_W + (size_t)x] = pDraw->pPalette[idx]; } } @@ -381,12 +397,16 @@ static void gif_task(void * /*arg*/) { continue; } - g_dst_w = CANVAS_W; - g_dst_h = CANVAS_H; + // 1:1 into canvas (center; clip if GIF larger than 160x120). + g_off_x = ((int)CANVAS_W - g_src_w) / 2; + g_off_y = ((int)CANVAS_H - g_src_h) / 2; + g_dst_w = g_src_w; + g_dst_h = g_src_h; g_img_w = CANVAS_W; g_img_h = CANVAS_H; - g_off_x = 0; - g_off_y = 0; + g_gif_pend_disposal = 0; + g_gif_pend_w = 0; + g_gif_pend_h = 0; // Double-buffer: show A, decode into B (B starts as copy of A). g_show = g_pixels; diff --git a/src/ui.cpp b/src/ui.cpp index df92f33..b0e8a39 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -85,21 +85,12 @@ static void show_current() { const PhotoEntry *e = photo_list_get((uint16_t)g_index); const bool ok = e && photo_view_show(e); if (img_photo) { - const bool gif = ok && photo_view_is_gif(); - // GIF: integer 2x scale (cheap, less tear). Still: full-screen stretch. - if (gif) { - lv_image_set_inner_align(img_photo, LV_IMAGE_ALIGN_DEFAULT); - lv_image_set_scale(img_photo, 512); // 256=1x - lv_image_set_pivot(img_photo, photo_view_canvas_w() / 2, - photo_view_canvas_h() / 2); - lv_obj_set_size(img_photo, photo_view_canvas_w(), photo_view_canvas_h()); - lv_obj_align(img_photo, LV_ALIGN_CENTER, 0, 0); - } else { - lv_image_set_scale(img_photo, 256); - lv_image_set_inner_align(img_photo, LV_IMAGE_ALIGN_STRETCH); - lv_obj_set_size(img_photo, UI_HOR_RES, UI_VER_RES); - lv_obj_set_pos(img_photo, 0, 0); - } + // Always full-screen stretch so JPG/GIF share the same size (no shrink after GIF). + lv_image_set_scale(img_photo, LV_SCALE_NONE); + lv_image_set_pivot(img_photo, 0, 0); + lv_image_set_inner_align(img_photo, LV_IMAGE_ALIGN_STRETCH); + lv_obj_set_size(img_photo, UI_HOR_RES, UI_VER_RES); + lv_obj_align(img_photo, LV_ALIGN_TOP_LEFT, 0, 0); const lv_image_dsc_t *dsc = photo_view_dsc(); if (ok && dsc) { @@ -201,9 +192,9 @@ void ui_create() { lv_obj_add_event_cb(tap, on_tap_zone, LV_EVENT_CLICKED, nullptr); img_photo = lv_image_create(scr); - // Full-screen widget + stretch avoids scale-transform gaps/stripes behind the photo. lv_obj_set_size(img_photo, UI_HOR_RES, UI_VER_RES); - lv_obj_set_pos(img_photo, 0, 0); + lv_obj_align(img_photo, LV_ALIGN_TOP_LEFT, 0, 0); + lv_image_set_scale(img_photo, LV_SCALE_NONE); lv_image_set_inner_align(img_photo, LV_IMAGE_ALIGN_STRETCH); lv_obj_set_style_bg_color(img_photo, lv_color_hex(0x000000), 0); lv_obj_set_style_bg_opa(img_photo, LV_OPA_COVER, 0); diff --git a/tools/make_test_photos.py b/tools/make_test_photos.py index 10c2c65..ac740a7 100644 --- a/tools/make_test_photos.py +++ b/tools/make_test_photos.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Generate 320x240 JPG/PNG/GIF samples into assets/photos (solid bg, no stripes).""" +"""Generate test photos into assets/photos (solid bg; GIF is 160x120 for 1:1 decode).""" from __future__ import annotations from pathlib import Path @@ -9,6 +9,7 @@ from PIL import Image, ImageDraw, ImageFont ROOT = Path(__file__).resolve().parents[1] OUT = ROOT / "assets" / "photos" W, H = 320, 240 +GIF_W, GIF_H = 160, 120 def font(size: int = 28) -> ImageFont.ImageFont: @@ -27,7 +28,6 @@ def font(size: int = 28) -> ImageFont.ImageFont: def card(bg, accent, title: str, subtitle: str, path: Path, fmt: str) -> None: im = Image.new("RGB", (W, H), bg) d = ImageDraw.Draw(im) - # Solid panel only — no horizontal stripe decoration d.rounded_rectangle((20, 36, W - 20, H - 36), radius=12, fill=bg, outline=accent, width=3) d.text((36, 70), title, fill=(234, 240, 246), font=font(36)) d.text((36, 130), subtitle, fill=(160, 175, 190), font=font(20)) @@ -45,23 +45,25 @@ def main() -> None: card((28, 12, 18), (232, 93, 76), "02 JPG", "red sample", OUT / "02_red.jpg", "JPEG") card((8, 28, 20), (61, 220, 151), "03 PNG", "green sample", OUT / "03_green.png", "PNG") + # 160x120 GIF matches decode canvas → no downscale flicker on moving regions. frames = [] - for i in range(6): - im = Image.new("RGB", (W, H), (10, 16, 22)) + for i in range(8): + im = Image.new("RGB", (GIF_W, GIF_H), (10, 16, 22)) d = ImageDraw.Draw(im) - d.text((24, 24), "04 GIF", fill=(234, 240, 246), font=font(32)) - d.text((24, 70), "animated", fill=(160, 175, 190), font=font(18)) - x = 20 + i * 40 - d.rounded_rectangle((x, 120, x + 80, 180), radius=8, fill=(255, 200, 40)) + d.text((8, 8), "04 GIF", fill=(234, 240, 246), font=font(22)) + d.text((8, 36), "160x120", fill=(160, 175, 190), font=font(14)) + x = 4 + i * 14 + d.rounded_rectangle((x, 60, x + 40, 100), radius=6, fill=(255, 200, 40)) frames.append(im) gif_path = OUT / "04_bounce.gif" frames[0].save( gif_path, save_all=True, append_images=frames[1:], - duration=120, + duration=80, loop=0, optimize=False, + disposal=2, # restore to background — handled in firmware ) print(f"wrote {gif_path} ({gif_path.stat().st_size} bytes)") print("DONE")