微信小程序页面迁移校验之前 P5任务处理之前
This commit is contained in:
71
scripts/ops/radius_ab_compare.py
Normal file
71
scripts/ops/radius_ab_compare.py
Normal file
@@ -0,0 +1,71 @@
|
||||
"""
|
||||
borderRadius A/B 对比拼接脚本
|
||||
拼接三张已有截图为一张对比图:H5 baseline | A: ×2 | B: ×0.875
|
||||
"""
|
||||
from pathlib import Path
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
|
||||
PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent
|
||||
OUT_DIR = PROJECT_ROOT / "export" / "screenshots" / "radius_compare"
|
||||
|
||||
def create_comparison():
|
||||
h5_path = OUT_DIR / "h5_baseline.png"
|
||||
mp_a_path = OUT_DIR / "mp_a_x2.png"
|
||||
mp_b_path = OUT_DIR / "mp_b_875.png"
|
||||
|
||||
for p in [h5_path, mp_a_path, mp_b_path]:
|
||||
if not p.exists():
|
||||
raise FileNotFoundError(f"缺少截图: {p}")
|
||||
|
||||
h5 = Image.open(h5_path)
|
||||
mp_a = Image.open(mp_a_path)
|
||||
mp_b = Image.open(mp_b_path)
|
||||
|
||||
# 统一到相同高度(取最小高度)
|
||||
target_h = min(h5.height, mp_a.height, mp_b.height)
|
||||
|
||||
def resize_to_h(img, th):
|
||||
ratio = th / img.height
|
||||
return img.resize((int(img.width * ratio), th), Image.LANCZOS)
|
||||
|
||||
h5 = resize_to_h(h5, target_h)
|
||||
mp_a = resize_to_h(mp_a, target_h)
|
||||
mp_b = resize_to_h(mp_b, target_h)
|
||||
|
||||
label_h = 80
|
||||
gap = 30
|
||||
|
||||
total_w = h5.width + mp_a.width + mp_b.width + gap * 2
|
||||
total_h = target_h + label_h
|
||||
|
||||
canvas = Image.new("RGB", (total_w, total_h), (255, 255, 255))
|
||||
draw = ImageDraw.Draw(canvas)
|
||||
|
||||
# 字体
|
||||
try:
|
||||
font = ImageFont.truetype("msyh.ttc", 40)
|
||||
except Exception:
|
||||
try:
|
||||
font = ImageFont.truetype("arial.ttf", 40)
|
||||
except Exception:
|
||||
font = ImageFont.load_default()
|
||||
|
||||
labels_and_x = [
|
||||
("H5 原型 (baseline)", 0),
|
||||
("A: ×2 圆角 (当前)", h5.width + gap),
|
||||
("B: ×2×0.875 圆角", h5.width + gap + mp_a.width + gap),
|
||||
]
|
||||
images = [h5, mp_a, mp_b]
|
||||
|
||||
for i, (label, x) in enumerate(labels_and_x):
|
||||
draw.text((x + 10, 15), label, fill=(0, 0, 0), font=font)
|
||||
canvas.paste(images[i], (x, label_h))
|
||||
|
||||
out_path = OUT_DIR / "comparison_abc.png"
|
||||
canvas.save(str(out_path), quality=95)
|
||||
print(f"[Done] 对比图: {out_path}")
|
||||
print(f" 尺寸: {total_w}x{total_h}")
|
||||
return out_path
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_comparison()
|
||||
Reference in New Issue
Block a user