修正i3-3代SKU总成本计算错误并清理验证图片

- 修正3个i3-3代SKU文件总成本与配件之和不一致的问题:i3-3代-4G-32G总成本221.5->236.5,i3-3代-4G-64G总成本236.5->251.5,i3-3代-8G-64G总成本313.5->298.5

- 删除售价验证临时图片,新增nascab产品和2.5金单有产品目录
This commit is contained in:
12600k-rog-d4
2026-06-29 00:56:24 +08:00
parent 327f019d42
commit aa926688c4
258 changed files with 221 additions and 3689 deletions

View File

@@ -0,0 +1,70 @@
# -*- coding: utf-8 -*-
"""在图片上叠加文字标签:标题 + 副标题,带半透明背景条"""
from PIL import Image, ImageDraw, ImageFont
import sys
import os
def add_text_overlay(image_path, title, subtitle, output_path):
img = Image.open(image_path).convert("RGBA")
w, h = img.size
# 创建文字图层
txt_layer = Image.new("RGBA", (w, h), (0, 0, 0, 0))
draw = ImageDraw.Draw(txt_layer)
# 字体大小根据图片宽度自适应
title_size = max(48, w // 18)
sub_size = max(28, w // 30)
# 尝试加载中文字体
font_paths = [
r"C:\Windows\Fonts\msyhbd.ttc", # 微软雅黑粗体
r"C:\Windows\Fonts\msyh.ttc", # 微软雅黑
r"C:\Windows\Fonts\simhei.ttf", # 黑体
]
title_font = None
sub_font = None
for fp in font_paths:
if os.path.exists(fp):
title_font = ImageFont.truetype(fp, title_size)
sub_font = ImageFont.truetype(fp, sub_size)
break
if title_font is None:
title_font = ImageFont.load_default()
sub_font = ImageFont.load_default()
# 文字位置:左上角,带边距
margin_x = w // 15
margin_y = h // 10
# 绘制半透明背景条
title_bbox = draw.textbbox((margin_x, margin_y), title, font=title_font)
sub_bbox = draw.textbbox((margin_x, title_bbox[3] + 12), subtitle, font=sub_font)
bar_top = margin_y - 16
bar_bottom = sub_bbox[3] + 16
bar_right = max(title_bbox[2], sub_bbox[2]) + 30
draw.rectangle(
[(margin_x - 16, bar_top), (bar_right, bar_bottom)],
fill=(0, 0, 0, 140)
)
# 绘制标题(白色粗体)
draw.text((margin_x, margin_y), title, font=title_font, fill=(255, 255, 255, 255))
# 绘制副标题(浅白色)
draw.text((margin_x, title_bbox[3] + 12), subtitle, font=sub_font, fill=(220, 230, 255, 230))
# 合成
result = Image.alpha_composite(img, txt_layer).convert("RGB")
result.save(output_path, "PNG")
print(f"Saved: {output_path}")
if __name__ == "__main__":
if len(sys.argv) < 5:
print("Usage: python add_text.py <image_path> <title> <subtitle> <output_path>")
sys.exit(1)
add_text_overlay(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])