Files
o62lte-customising-plan/s5e-pressure-anim/tools/s5e_check_clip.py
T

41 lines
1.3 KiB
Python
Raw Normal View History

2026-10-03 00:01:12 +08:00
# -*- coding: utf-8 -*-
"""圆屏切边检查:用**真实渲染出来的像素**判 480x480 圆屏有没有被切到。
圆心 (240,240)、半径 240。任何 alpha>8 且离圆心 >240 的像素都算越界。
"""
import os, sys, math
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import s5e_render_ui as R
from s5e_pages import PAGES
W = H = 480
CX = CY = 240.0
RAD = 240.0
print('%-10s %8s %11s worst point' % ('page', 'max r', 'outside px'))
print('-' * 62)
bad = 0
for name, items in PAGES.items():
im = R.render_raw(items)
px = im.load()
worst, wpt, outside = 0.0, None, 0
for y in range(H):
for x in range(W):
if px[x, y][3] > 8:
dd = math.hypot(x - CX, y - CY)
if dd > worst:
worst, wpt = dd, (x, y)
if dd > RAD:
outside += 1
print('%-10s %8.1f %11d %s%s' % (name, worst, outside, wpt,
'' if worst <= RAD else ' <-- CLIPPED'))
if outside:
bad += 1
print('-' * 62)
print('圆心 (240,240) 半径 240 画布 480x480 越界页数:%d' % bad)
if R.OVERFLOW:
print('!! 文本溢出框 %d 处:' % len(R.OVERFLOW))
for o in R.OVERFLOW:
print(' ', o)
sys.exit(1 if (bad or R.OVERFLOW) else 0)