# -*- coding: utf-8 -*- import re import os project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) def check_bitmap(filepath): with open(filepath, 'r', encoding='utf-8') as f: content = f.read() m = re.search(r'/\* U\+4E2D.*?\*/(.*?)(?:/\* U\+|static const lv_font_fmt_txt_glyph_dsc_t)', content, re.DOTALL) if m: data_str = m.group(1) bytes_vals = [] for x in data_str.split(','): x = x.strip() if not x: continue if x.startswith('0x') or x.startswith('0X'): bytes_vals.append(int(x, 16)) else: try: bytes_vals.append(int(x)) except: pass pixels = [] for b in bytes_vals: pixels.append((b >> 4) & 0x0F) pixels.append(b & 0x0F) max_val = max(pixels) nonzero = [v for v in pixels if v > 0] min_nonzero = min(nonzero) if nonzero else 0 avg_nonzero = sum(nonzero) / len(nonzero) if nonzero else 0 print(f'{filepath}: max={max_val}/15, min_nonzero={min_nonzero}/15, avg_nonzero={avg_nonzero:.1f}/15') else: print(f'{filepath}: no match') check_bitmap(os.path.join(project_root, 'app/tasks/custom_cjk_40.c')) check_bitmap(os.path.join(project_root, 'app/tasks/custom_cjk_30.c')) check_bitmap(os.path.join(project_root, 'app/tasks/custom_cjk_20.c')) check_bitmap(os.path.join(project_root, 'app/tasks/custom_cjk_16.c'))