feat: 沙香科技官网 v2.2 基线(深色科技风/双语/局域网+公网双部署)

This commit is contained in:
dafe
2026-11-02 14:57:08 +08:00
commit 924bca9f98
91 changed files with 1632 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
"""
处理用户补充的新素材(assets/img 内):
- 7 张透明底产品图 p-*:无损 WebP 保留 alpha(已是镂空,无需再处理)
- p-hs01 背景复杂不透明:有损压缩(页面走 framed 描边容器)
- 12 张照片 JPG:有损 WebP(宽度 >1600 的缩到 1600)
- qr-wechat.png 二维码:不处理,HTML 直接引用原 PNG
原图不删除(用户提供的源文件)。用法: uv run --with pillow python3 tools/process_new_assets.py
"""
from pathlib import Path
from PIL import Image
IMG = Path('assets/img')
# 已检测为真透明的产品图(透明像素 37%~88%)
ALPHA_PRODUCTS = [
'p-bb03.png', 'p-bg01.png', 'p-sg03.png', 'p-sg03mini.png',
'p-sl01.png', 'p-st01.png', 'p-st02.png',
]
# 有损压缩的照片/截图
PHOTOS = [
'p-hs01.png', # 背景复杂不透明,同照片处理
'ai-agent.jpg', 'app-livestock.jpg', 'building.jpg', 'cctv.jpg',
'digital-twin.jpg', 'factory-line.jpg', 'factory.jpg', 'goat.jpg',
'hero-grazing.jpg', 'hydro-class.jpg', 'liangchang.jpg',
'machine-install.jpg', 'platform-asset.jpg', 'platform-hydro.jpg',
'platform-pasture.jpg',
]
for name in ALPHA_PRODUCTS:
src = IMG / name
dst = IMG / (name[:-4] + '.webp')
im = Image.open(src).convert('RGBA')
# 自检:透明像素占比必须显著,否则说明误判为透明图
trans = sum(1 for p in im.getdata() if p[3] < 250) / (im.width * im.height)
assert trans > 0.2, f'{name} 透明像素仅 {trans:.0%},不符合透明底预期'
im.save(dst, 'WEBP', lossless=True, method=6)
print(f'{name:18s} -> {dst.name:22s} 透明{trans:.0%} {dst.stat().st_size // 1024}KB')
for name in PHOTOS:
src = IMG / name
dst = IMG / (name[:-4] + '.webp')
im = Image.open(src).convert('RGB')
if im.width > 1600:
im = im.resize((1600, round(im.height * 1600 / im.width)), Image.LANCZOS)
im.save(dst, 'WEBP', quality=82, method=6)
print(f'{name:18s} -> {dst.name:22s} {im.width}x{im.height} {dst.stat().st_size // 1024}KB')
print('完成')