mirror of
https://github.com/Minidoracat/mcp-feedback-enhanced.git
synced 2025-07-27 02:22:26 +08:00
103 lines
2.8 KiB
Python
103 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
生成基本的應用程式圖標
|
||
|
||
這個腳本會生成 Tauri 應用程式所需的基本圖標文件。
|
||
在實際部署中,應該使用專業的圖標設計。
|
||
"""
|
||
|
||
import os
|
||
|
||
from PIL import Image, ImageDraw
|
||
|
||
|
||
def create_simple_icon(size, output_path):
|
||
"""創建簡單的圖標"""
|
||
# 創建圖像
|
||
img = Image.new("RGBA", (size, size), (0, 0, 0, 0))
|
||
draw = ImageDraw.Draw(img)
|
||
|
||
# 繪製簡單的圖標 - 一個帶邊框的圓形
|
||
margin = size // 8
|
||
draw.ellipse(
|
||
[margin, margin, size - margin, size - margin],
|
||
fill=(52, 152, 219, 255),
|
||
outline=(41, 128, 185, 255),
|
||
width=2,
|
||
)
|
||
|
||
# 在中心繪製 "MCP" 文字
|
||
try:
|
||
# 嘗試使用系統字體
|
||
from PIL import ImageFont
|
||
|
||
font_size = size // 4
|
||
try:
|
||
font = ImageFont.truetype("arial.ttf", font_size)
|
||
except:
|
||
font = ImageFont.load_default()
|
||
except ImportError:
|
||
font = None
|
||
|
||
text = "MCP"
|
||
if font:
|
||
bbox = draw.textbbox((0, 0), text, font=font)
|
||
text_width = bbox[2] - bbox[0]
|
||
text_height = bbox[3] - bbox[1]
|
||
else:
|
||
text_width = len(text) * (size // 8)
|
||
text_height = size // 6
|
||
|
||
text_x = (size - text_width) // 2
|
||
text_y = (size - text_height) // 2
|
||
|
||
draw.text((text_x, text_y), text, fill=(255, 255, 255, 255), font=font)
|
||
|
||
# 保存圖像
|
||
img.save(output_path)
|
||
print(f"已生成圖標: {output_path}")
|
||
|
||
|
||
def main():
|
||
"""主函數"""
|
||
icons_dir = "icons"
|
||
os.makedirs(icons_dir, exist_ok=True)
|
||
|
||
# 生成不同尺寸的 PNG 圖標
|
||
sizes = [32, 128, 256]
|
||
for size in sizes:
|
||
if size == 128:
|
||
# 生成普通和 2x 版本
|
||
create_simple_icon(size, f"{icons_dir}/{size}x{size}.png")
|
||
create_simple_icon(size * 2, f"{icons_dir}/{size}x{size}@2x.png")
|
||
else:
|
||
create_simple_icon(size, f"{icons_dir}/{size}x{size}.png")
|
||
|
||
# 為 Windows 創建 ICO 文件
|
||
try:
|
||
img_256 = Image.open(f"{icons_dir}/256x256.png")
|
||
img_256.save(
|
||
f"{icons_dir}/icon.ico",
|
||
format="ICO",
|
||
sizes=[(256, 256), (128, 128), (64, 64), (32, 32), (16, 16)],
|
||
)
|
||
print(f"已生成 Windows 圖標: {icons_dir}/icon.ico")
|
||
except Exception as e:
|
||
print(f"生成 ICO 文件失敗: {e}")
|
||
|
||
# 為 macOS 創建 ICNS 文件(需要額外工具)
|
||
print("注意:macOS ICNS 文件需要使用專門的工具生成")
|
||
print("可以使用在線工具或 iconutil 命令將 PNG 轉換為 ICNS")
|
||
|
||
print("圖標生成完成!")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
try:
|
||
main()
|
||
except ImportError:
|
||
print("錯誤:需要安裝 Pillow 庫")
|
||
print("請運行:pip install Pillow")
|
||
except Exception as e:
|
||
print(f"生成圖標時發生錯誤: {e}")
|