97f7d200a2
- 移动 10 个 Python 字体工具脚本到 tools/ - 移动 5 个 C 字体测试文件到 tools/ - 更新脚本路径引用适配新目录结构 - 清理 vue/vue3 前端模板文件
41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
# -*- 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'))
|