From 4d157453ce8040710b6fd3940bca862f2a45d91b Mon Sep 17 00:00:00 2001 From: jinye_huang Date: Sun, 27 Jul 2025 17:08:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E9=80=8F=E6=98=8E?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vibrant_template.cpython-312.pyc | Bin 47347 -> 48361 bytes poster/templates/vibrant_template.py | 30 +++++++++++++++--- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/poster/templates/__pycache__/vibrant_template.cpython-312.pyc b/poster/templates/__pycache__/vibrant_template.cpython-312.pyc index de627e75fe8c8f292f9690e40a6ad14ca5e4dc52..b549ce1b182d7579a9a5f6a54c4af4b5e98171ca 100644 GIT binary patch delta 5856 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 delta 5143 zcmb7IeN>cH8s`o(!@vL{!k{=LF0A@Gg6SHzC0Zgben9deyQwh_!wXE#7k6e95JW8% zDmA-(u$75q0%c0RrERo*AGg}{)aD=Cdv-f*9~QeUi)(J1XFKiv-Pf2|lJzv_@SEp8 z_ul8;`@7G5o@W^RMt9-7F7fvX32{;U<2tva{>>+!NnDjmB*mV3m!4E9f1Pxeq;BS& zgPDLe9H{MCbGw~&l-%kOr{l>SCJZObLrlNj|p zhk%YlW+p9y;sp-PH}Qq$vyz`3k;GQdvdt|3n< zQ)gQYq?27guhse(Mv9eQ<0!jM_BYxP)-kVp%^7CdT|AqHU(G-WJ+W?(x zb6$FZI0AM|_X8g0pc);1zwE6Mo7PUI_s9;fln`;nxH5VG(8d0kXPfglCYq{!!JyA$ zZ=xf|3ncK4%*c;MbRXN7WMSsKDT-_UF$3AjCgty#W`{koBRH3oqOCUs?LPp+fb;B) z{91BAu`RSk8+}~EJ*Q!7isHZdRbssZBVOVl#fmGVZ$NQ29d&zFm6CsY;=eY(rXLO1{8pDz~C6#gX{=q~=HU3)a)lAs2z zAgJM1wNq%DQ;ru|2r(#cEjvMs;!NGjjuj20t(8yci>8xcYXtbRm!NnJu!TbjU#=95 zGJsfE5PyL;zkl4qsvxc#gQj6m(*eR1))A&OGXKMy0drIo3l%35qtae%)7!w<#dr>b z1D#(SJ#?;X*I;)ieHn^-IB4{x!eS!xIaAq%(v?%dn_!uypyMZKf;hnu{e)GOWms=O zkAPJ4Jj8(?P@L@md#G#%na5r!%Ss#0OzL zd~6GrO#@71a{0XUbS|n1flzhO6?Dt?pxhXwR&-}DrF=1&!v0lWM`GCdJr?#@ag4IL zVzQ2WsXSEajBaa&vVl9hka7Qi;ZPS&wzdYj-24xn0Uc;vHFU&vb{ z*Vw7-3_84ZZkY-f!DFQ&Lcu}RSlJu$$kY*(CCe3A{1W4Z)0XiasOIVrj~ZTktLTfcbjBn=ZFfrXuLwPFK8@G@JVUKdDV-{q#UtxF8-tH8~=ZwQ+od^+*E zuIwJ^pwz#p-Ti)I0sCk0Yg=+uZ2VqRhw0wQXH6M@G9~UccbMO`VSh%9>4$#NLMuJjp?gEo^kk ze(~l;sF6(CZHv8nF;txCD5PV6cQBL40TciJJ}YV&@jiaWW}B#S3Y#X7Lgm(`HPK1% z;6Y&sDS^JkUT;}V3~W;C{EQS1dNpVrD0B@{NSCGixo(z9pGdD0ItbB()NQ zMM{_lNeexSd+W7iF+xrW&yAwu7~-a+_=x8rCPMpz*{~zRMmPI#TLan3R&DPz-URK< zY-szbe9bNqZ||xmwRsUH&)>0`+{Zk3R>ulHp5k5X)w?Xp(47zKR`y^&y?~8?9Lz(; zq6o`Z$WIdu6t zO)RM+jvQ1bcWltF3zM)3Dc9aq#{hzk~5@bfaQSa0V@D20aF0xQeXs0Pw*seBX27i zd%N_dVRC-FhkSxV%!l>s0Y3-a$P(|riknpEATF_QbF;`{mh(W4?kk`PFLk`Ac~*Eujc6CYl&J%~dtgQ6$XNW!7DW+t zqNff}4{!l)2aFINNaMLMU4-KvcHq%mlCGS2^v2i-)<;St>c-48tRn~)&-Pg~!*R=l zA>oS&6RZ_W80^ImtxQ7G1`s#vLx-p&{Unx)4QNxg?{Mx_9(h&xkq^PzNC`DI|1+-0 zzZolz;y*yxEj^R7)HpwNIc2*Dg!}j^syPsc1eu+G+^z`o}{MUN!@vMb-n*3FYU>^qY3lpxx|JiWm5joiHLbmsK zW!qg44IETMt=s1aQj|rs0U*lDa4A^_9m+24zY?Mf6TgY;p)=qd+}WbE-}^>1V*n=6 z0oV^fjYSy%|0+}G#xJF^T+!s0m-62pTD}!Y<`9NF0XPik0pKQSpYov65M8{C7$$#| zJ*&5(KdV2`Kclbez3c_U255(kQPQ0L34IB}F`{XT%9%SHE5x`cY1Xh=i1A#!kRZfL zol {final_size}") + # 重新创建PSD文档以匹配最终尺寸 + final_psd = PSDImage.new("RGBA", final_size, color=(0, 0, 0, 0)) + + # 调整并添加所有图层 + for layer in psd: + try: + if hasattr(layer, 'composite'): + layer_image = layer.composite() + if layer_image: + # 调整图层尺寸 + resized_layer = layer_image.resize(final_size, Image.LANCZOS) + final_layer = PixelLayer.frompil(resized_layer, final_psd, layer.name) + final_psd.append(final_layer) + except Exception as e: + logger.warning(f"调整图层 {layer.name} 失败: {e}") + + psd = final_psd # 保存PSD文件 psd.save(output_path) - logger.info(f"✓ PSD文件已保存: {output_path}") + logger.info(f"✓ PSD文件已保存: {output_path} (尺寸: {psd.size})") return output_path