From cbb17c5763718e5aa7614bf97f047a82f23a674e Mon Sep 17 00:00:00 2001 From: "Lu Fan(SonnyCalcr)" <1730976608@qq.com> Date: Sat, 17 Oct 2026 04:10:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(examples):=20=E6=96=B0=E5=A2=9E=20v2=20?= =?UTF-8?q?=E5=AE=9E=E6=9C=BA=E6=BC=94=E7=A4=BA=E7=9A=AE=E8=82=A4=E3=80=8C?= =?UTF-8?q?=E5=A4=9C=E6=A8=B1=E3=80=8D=20(#1018)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(examples): 新增 v2 实机演示皮肤「夜樱」 基于 canvas 的 schema_version 2 皮肤,用上九宫格面板(四角花纹不随拉伸变形)、面板后的月亮挂件、循环 APNG 花瓣与循环 GIF 星星、content_insets_dip、outer_insets_dip 和 line_gap_dip。左上角不放挂件,免得挡住预编辑文字。图片由 tools/gen_sakura_night.py 程序生成,随本目录以 MIT 授权,重新运行得到同样的文件。 * feat(examples): 夜樱的悬浮工具栏改用候选窗的紫夜配色 --- examples/skin-examples/README.md | 32 +++- .../skins/sakura-night/assets/moon.png | Bin 0 -> 24831 bytes .../skins/sakura-night/assets/panel.png | Bin 0 -> 6610 bytes .../skins/sakura-night/assets/petals.apng | Bin 0 -> 96889 bytes .../skins/sakura-night/assets/stars.gif | Bin 0 -> 1695 bytes .../skins/sakura-night/skin.toml | 120 ++++++++++++ .../skin-examples/tools/gen_sakura_night.py | 181 ++++++++++++++++++ 7 files changed, 328 insertions(+), 5 deletions(-) create mode 100644 examples/skin-examples/skins/sakura-night/assets/moon.png create mode 100644 examples/skin-examples/skins/sakura-night/assets/panel.png create mode 100644 examples/skin-examples/skins/sakura-night/assets/petals.apng create mode 100644 examples/skin-examples/skins/sakura-night/assets/stars.gif create mode 100644 examples/skin-examples/skins/sakura-night/skin.toml create mode 100644 examples/skin-examples/tools/gen_sakura_night.py diff --git a/examples/skin-examples/README.md b/examples/skin-examples/README.md index 5ad2b959..4255ed17 100644 --- a/examples/skin-examples/README.md +++ b/examples/skin-examples/README.md @@ -38,19 +38,27 @@ examples/skin-examples/ │ │ └─ assets/ │ │ ├─ character.png # 卡片上方的装饰图 │ │ └─ background.png # 卡片背景图 -│ └─ canvas-demo/ # schema_version 2 + canvas 基底的全贴图样例 +│ ├─ canvas-demo/ # schema_version 2 + canvas 基底的全贴图样例 +│ │ ├─ skin.toml +│ │ └─ assets/ +│ │ ├─ panel.png # 九宫格面板(2 倍图) +│ │ ├─ leaf.png # 面板下层挂件 +│ │ └─ sparkle.apng # 面板上层的循环 APNG 挂件 +│ └─ sakura-night/ # v2 实机演示「夜樱」:面板后的月亮、APNG 花瓣、GIF 星星 │ ├─ skin.toml │ └─ assets/ -│ ├─ panel.png # 九宫格面板(2 倍图) -│ ├─ leaf.png # 面板下层挂件 -│ └─ sparkle.apng # 面板上层的循环 APNG 挂件 +│ ├─ panel.png # 九宫格面板(2 倍图,四角小樱花不随拉伸变形) +│ ├─ moon.png # 面板下层挂件 +│ ├─ petals.apng # 面板上层的循环 APNG 挂件 +│ └─ stars.gif # 面板上层的循环 GIF 挂件 ├─ schema/ # manifest 字段说明 +├─ tools/ # 生成样例图片的脚本(需要 Pillow) ├─ tests/ # CI 用的 manifest 与安装脚本测试 ├─ preview.html # 本地预览 └─ install.ps1 # 样例安装脚本 ``` -只有 `skins//` 会被安装,`preview.html`、`schema/`、`tests/` 和安装脚本都只是制作工具。 +只有 `skins//` 会被安装,`preview.html`、`schema/`、`tools/`、`tests/` 和安装脚本都只是制作工具。 ## 样例皮肤能演示什么 @@ -138,6 +146,20 @@ z_index = 2 # z_index < 1 画在面板之下,其余画在 - 动图在系统关闭「动画效果」时只显示第一帧。动图解码后合计不超过 64 MB、最多 1024 帧,超出时只显示第一帧。 - 样例里的三张图都是程序生成的几何图形,随本目录以 MIT 授权,可以直接改用。 +`sakura-night`(夜樱)是一个更完整的实机演示,把 v2 的能力都用上了: + +- 紫夜玻璃九宫格面板,四角的小樱花落在 24 像素切片内,候选框怎么伸缩都不变形。 +- 月亮挂在右上角、`z_index = -1` 画在面板之后,只露出伸出面板的那一截。 +- 右侧飘落的花瓣是 24 帧 × 70 ms 的循环 APNG,左下闪烁的星星是 8 帧 × 150 ms 的循环 GIF。 +- 用 `content_insets_dip` 让文字避开边框和四角花纹,用 `outer_insets_dip` 给伸出去的挂件留出窗口空间,用 `line_gap_dip` 拉开预编辑行与候选。 +- 左上角刻意不放挂件:预编辑文字从那里开始,挂件压上去会挡字。 + +它的图片都由 `tools/gen_sakura_night.py` 生成(需要 Pillow),重新运行会得到同样的文件: + +```powershell +python tools/gen_sakura_night.py skins/sakura-night +``` + ## 制作约束 - 只用 `skin.toml` 和本地图片,不支持自定义 JavaScript,也不再读取 `cand.css` 或工具栏 CSS。 diff --git a/examples/skin-examples/skins/sakura-night/assets/moon.png b/examples/skin-examples/skins/sakura-night/assets/moon.png new file mode 100644 index 0000000000000000000000000000000000000000..c78b276910c1df97c2f0637d7945d4798186dd9a GIT binary patch literal 24831 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%0AhU907x0Enf^307d@kawj1U;c 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 QQUCw|07*qoM6N<$g1)X0rT_o{ literal 0 HcmV?d00001 diff --git a/examples/skin-examples/skins/sakura-night/assets/petals.apng b/examples/skin-examples/skins/sakura-night/assets/petals.apng new file mode 100644 index 0000000000000000000000000000000000000000..8972f3e2eefe2875af9e2253f29ad99cc846ec40 GIT binary patch literal 96889 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

OMfT1TvT2VA>~`I*RKgdHjTkMOE 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 Mm(<-@w<-vK1ImEClK=n! literal 0 HcmV?d00001 diff --git a/examples/skin-examples/skins/sakura-night/skin.toml b/examples/skin-examples/skins/sakura-night/skin.toml new file mode 100644 index 00000000..3a045711 --- /dev/null +++ b/examples/skin-examples/skins/sakura-night/skin.toml @@ -0,0 +1,120 @@ +# 水杉输入法 schema_version 2 实机演示皮肤「夜樱」。 +# 用到 v2 的全部能力:canvas 基底、九宫格面板、面板后/前两层挂件、APNG 与 GIF 动图、内容内边距、外留白、行距。 +# 所有图片由 tools/gen_sakura_night.py 程序生成,随本目录以 MIT 授权;都是 2 倍图(像素尺寸是下面 *_dip 的两倍)。 + +schema_version = 2 +id = "sakura-night" +name = "夜樱 · v2 演示" +version = "1.0.0" +author = "Metasequoia IME contributors" +description = "v2 全贴图演示:紫夜玻璃九宫格面板、面板后的月亮、右侧飘落的花瓣(APNG)、左下闪烁的星星(GIF)。" +base = "canvas" + +[supports] +layouts = ["horizontal", "vertical"] +themes = ["dark", "light"] + +[candidate_window] +min_width_dip = 220 +item_corner_radius_dip = 6 +line_gap_dip = 6 # 预编辑行与候选之间 + +# 96×96 的 2 倍面板图:切片 24 像素,边框画 12 DIP。四角的小樱花在切片之内,面板怎么拉伸都不变形。 +[candidate_window.border_image] +source = "assets/panel.png" +slice_dip = [24] +width_dip = [12] +fill = true + +# 内容离面板外缘的距离;左右多留一点,避开四角的小樱花。 +[candidate_window.content_insets_dip] +top = 12 +right = 16 +bottom = 12 +left = 18 + +# 挂件伸出面板的部分需要的窗口留白。 +[candidate_window.outer_insets_dip] +top = 30 +right = 36 +bottom = 22 +left = 12 + +# 月亮:z_index < 1,画在面板之后,只露出右上角伸出去的那一截。 +[[candidate_window.decorations]] +image = "assets/moon.png" +anchor = "top-right" +offset_x_dip = 30 +offset_y_dip = -30 +width_dip = 72 +height_dip = 72 +z_index = -1 + +# 飘落的花瓣:24 帧 × 70 ms 循环的 APNG,沿右侧边框落下。 +[[candidate_window.decorations]] +image = "assets/petals.apng" +anchor = "bottom-right" +offset_x_dip = 36 +offset_y_dip = 22 +width_dip = 48 +height_dip = 80 +z_index = 3 + +# 闪烁的星星:8 帧 × 150 ms 循环的 GIF。 +[[candidate_window.decorations]] +image = "assets/stars.gif" +anchor = "bottom-left" +offset_x_dip = -12 +offset_y_dip = 16 +width_dip = 40 +height_dip = 20 +z_index = 1 + +# 面板是深色的,深浅两套主题都用浅色文字。 +[candidate.dark] +accent = "#ff8fb8" +selected = "rgba(255, 143, 184, 0.22)" +hover = "rgba(255, 143, 184, 0.12)" +text = "#f5ecff" +number = "rgba(245, 236, 255, 0.58)" +translation = "#c9b8ff" +preedit_text = "#ffc4dc" +selected_text = "#ffffff" +selected_bar = "#ffd27a" + +[candidate.light] +accent = "#ff8fb8" +selected = "rgba(255, 143, 184, 0.24)" +hover = "rgba(255, 143, 184, 0.14)" +text = "#f5ecff" +number = "rgba(245, 236, 255, 0.60)" +translation = "#c9b8ff" +preedit_text = "#ffc4dc" +selected_text = "#ffffff" +selected_bar = "#ffd27a" + +# 悬浮工具栏跟候选窗同一套紫夜配色:底色取面板的紫,边框取面板的粉边,拖动条用主题粉,图标同候选文字。 +# 面板在深浅两套主题下都是深色,工具栏也一样。 +[toolbar] +corner_radius_dip = 10 # 与面板圆角一致(面板图 20 像素圆角,2 倍图) + +[toolbar.dark] +background = "#211838" +border = "rgba(255, 170, 205, 0.55)" +handle = "#ff8fb8" +divider = "rgba(255, 143, 184, 0.28)" +icon = "#f5ecff" +hover = "rgba(255, 143, 184, 0.18)" + +[toolbar.light] +background = "#211838" +border = "rgba(255, 170, 205, 0.55)" +handle = "#ff8fb8" +divider = "rgba(255, 143, 184, 0.28)" +icon = "#f5ecff" +hover = "rgba(255, 143, 184, 0.18)" + +[license] +code = "MIT" +assets = "MIT" +source = "Procedurally generated by the Metasequoia IME contributors." diff --git a/examples/skin-examples/tools/gen_sakura_night.py b/examples/skin-examples/tools/gen_sakura_night.py new file mode 100644 index 00000000..c9e65b0d --- /dev/null +++ b/examples/skin-examples/tools/gen_sakura_night.py @@ -0,0 +1,181 @@ +"""Generate the "sakura-night" schema_version 2 demo skin for Metasequoia IME. + +All artwork is procedural (Pillow), drawn at 4x and downsampled for anti-aliasing. +Every bitmap is a 2x asset: the manifest's *_dip sizes are half the pixel sizes. + +Requires Pillow (pip install pillow). From examples/skin-examples: + python tools/gen_sakura_night.py skins/sakura-night +""" + +import math +import random +import sys +from pathlib import Path + +from PIL import Image, ImageDraw, ImageFilter + +SS = 4 # supersampling factor + + +def canvas(w, h): + return Image.new("RGBA", (w * SS, h * SS), (0, 0, 0, 0)) + + +def finish(img): + w, h = img.size + return img.resize((w // SS, h // SS), Image.LANCZOS) + + +def lerp(a, b, t): + return tuple(round(a[i] + (b[i] - a[i]) * t) for i in range(len(a))) + + +def sakura_flower(draw, cx, cy, r, petal, center, rot=0.0): + """Five notched petals around a small center, in supersampled coordinates.""" + for k in range(5): + ang = rot + k * 2 * math.pi / 5 + px = cx + math.cos(ang) * r * 0.55 + py = cy + math.sin(ang) * r * 0.55 + pr = r * 0.48 + draw.ellipse([px - pr, py - pr, px + pr, py + pr], fill=petal) + # notch at the petal tip + nx = cx + math.cos(ang) * r * 1.02 + ny = cy + math.sin(ang) * r * 1.02 + nr = r * 0.14 + draw.ellipse([nx - nr, ny - nr, nx + nr, ny + nr], fill=(0, 0, 0, 0)) + cr = r * 0.22 + draw.ellipse([cx - cr, cy - cr, cx + cr, cy + cr], fill=center) + + +def panel(out): + """96x96 nine-slice panel; slices are 24 px (12 DIP), corner flowers live inside the slices.""" + W = H = 96 + img = canvas(W, H) + s = SS + # vertical gradient fill clipped to a rounded rectangle + grad = Image.new("RGBA", img.size) + gd = ImageDraw.Draw(grad) + top, bottom = (34, 22, 58, 240), (22, 16, 44, 240) + for y in range(img.size[1]): + gd.line([(0, y), (img.size[0], y)], fill=lerp(top, bottom, y / img.size[1])) + mask = Image.new("L", img.size, 0) + ImageDraw.Draw(mask).rounded_rectangle([0, 0, W * s - 1, H * s - 1], radius=20 * s, fill=255) + img.paste(grad, (0, 0), mask) + d = ImageDraw.Draw(img) + # outer rim and a faint inner highlight + d.rounded_rectangle([1 * s, 1 * s, W * s - 1 * s - 1, H * s - 1 * s - 1], radius=19 * s, + outline=(255, 170, 205, 150), width=2 * s) + d.rounded_rectangle([4 * s, 4 * s, W * s - 4 * s - 1, H * s - 4 * s - 1], radius=16 * s, + outline=(255, 255, 255, 28), width=1 * s) + # corner flowers: entirely within the 24 px corner slices, so they never stretch + gold, pink = (255, 214, 140, 235), (255, 160, 200, 235) + for (cx, cy, col, rot) in [(15, 15, gold, -0.3), (W - 15, 15, pink, 0.2), + (15, H - 15, pink, 0.5), (W - 15, H - 15, gold, 0.9)]: + sakura_flower(d, cx * s, cy * s, 6.5 * s, col, (255, 245, 220, 255), rot) + finish(img).save(out / "panel.png", optimize=True) + + +def moon(out): + """144x144 moon with a soft halo; drawn behind the panel (z_index < 1).""" + W = H = 144 + s = SS + halo = canvas(W, H) + hd = ImageDraw.Draw(halo) + c = W * s / 2 + for i in range(28, 0, -1): + r = (40 + i * 1.1) * s + hd.ellipse([c - r, c - r, c + r, c + r], fill=(255, 210, 120, int(10 + (28 - i) * 2.2))) + body = canvas(W, H) + bd = ImageDraw.Draw(body) + r = 40 * s + bd.ellipse([c - r, c - r, c + r, c + r], fill=(255, 226, 140, 255)) + for (dx, dy, rr, a) in [(-12, -8, 8, 70), (10, 12, 11, 60), (14, -15, 5, 70), (-8, 17, 5, 55)]: + bd.ellipse([c + dx * s - rr * s, c + dy * s - rr * s, c + dx * s + rr * s, c + dy * s + rr * s], + fill=(214, 168, 90, a)) + img = Image.alpha_composite(halo.filter(ImageFilter.GaussianBlur(6 * s)), body) + finish(img).save(out / "moon.png", optimize=True) + + +def petal_sprite(size, color): + s = SS + p = Image.new("RGBA", (size * s, size * s), (0, 0, 0, 0)) + d = ImageDraw.Draw(p) + d.ellipse([size * 0.18 * s, 0, size * 0.82 * s, size * s - 1], fill=color) + d.ellipse([size * 0.42 * s, -size * 0.12 * s, size * 0.58 * s, size * 0.12 * s], fill=(0, 0, 0, 0)) + return p + + +def petals(out): + """96x160, 24 frames x 70 ms looping APNG of falling petals (front layer).""" + W, H, N = 96, 160, 24 + rnd = random.Random(11) + specs = [] + for _ in range(10): + specs.append(dict(x0=rnd.uniform(10, W - 14), y0=rnd.uniform(0, H), size=rnd.randint(12, 18), + sway=rnd.uniform(6, 14), phase=rnd.uniform(0, 2 * math.pi), + spin=rnd.choice([-1, 1]) * rnd.uniform(0.6, 1.4), + color=lerp((255, 190, 215, 230), (255, 140, 185, 230), rnd.random()))) + frames = [] + for f in range(N): + t = f / N # one full fall per loop keeps the animation seamless + img = canvas(W, H) + for sp in specs: + y = (sp["y0"] + t * (H + 20)) % (H + 20) - 20 + x = sp["x0"] + math.sin(sp["phase"] + t * 2 * math.pi) * sp["sway"] + angle = math.degrees(sp["phase"] + sp["spin"] * t * 2 * math.pi) + sprite = petal_sprite(sp["size"], sp["color"]).rotate(angle, resample=Image.BICUBIC, expand=True) + fade = min(1.0, (y + 20) / 30, (H - y) / 30) + if fade <= 0: + continue + if fade < 1: + a = sprite.getchannel("A").point(lambda v: int(v * fade)) + sprite.putalpha(a) + img.alpha_composite(sprite, (int(x * SS - sprite.size[0] / 2), int(y * SS - sprite.size[1] / 2))) + frames.append(finish(img)) + frames[0].save(out / "petals.apng", format="PNG", save_all=True, append_images=frames[1:], duration=70, + loop=0, disposal=1, blend=0, optimize=True) + + +def stars(out): + """80x40, 8 frames x 150 ms looping GIF of twinkling stars (front layer, shows GIF support).""" + W, H, N = 80, 40, 8 + rnd = random.Random(3) + pts = [(rnd.uniform(6, W - 6), rnd.uniform(6, H - 6), rnd.uniform(2.5, 5), rnd.uniform(0, 2 * math.pi)) + for _ in range(6)] + frames = [] + for f in range(N): + img = Image.new("RGBA", (W, H), (0, 0, 0, 0)) + d = ImageDraw.Draw(img) + for (x, y, r, ph) in pts: + k = 0.35 + 0.65 * (0.5 + 0.5 * math.sin(ph + f * 2 * math.pi / N)) + rr = r * k + # four-point star + d.polygon([(x, y - rr * 2), (x + rr * 0.45, y - rr * 0.45), (x + rr * 2, y), (x + rr * 0.45, y + rr * 0.45), + (x, y + rr * 2), (x - rr * 0.45, y + rr * 0.45), (x - rr * 2, y), (x - rr * 0.45, y - rr * 0.45)], + fill=(255, 226, 150, 255)) + # GIF has 1-bit transparency: threshold alpha, then quantize with a reserved transparent index + alpha = img.getchannel("A").point(lambda v: 255 if v >= 128 else 0) + rgb = Image.new("RGB", (W, H), (0, 0, 0)) + rgb.paste(img.convert("RGB"), mask=alpha) + p = rgb.quantize(colors=255) + p.paste(255, mask=alpha.point(lambda v: 255 if v == 0 else 0)) + frames.append(p) + frames[0].save(out / "stars.gif", save_all=True, append_images=frames[1:], duration=150, loop=0, + transparency=255, disposal=2, optimize=False) + + +def main(): + if len(sys.argv) != 2: + raise SystemExit(__doc__) + out = Path(sys.argv[1]) / "assets" + out.mkdir(parents=True, exist_ok=True) + panel(out) + moon(out) + petals(out) + stars(out) + for f in sorted(out.iterdir()): + print(f"{f.name}\t{f.stat().st_size} bytes") + + +if __name__ == "__main__": + main()