34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from PIL import Image
|
||
import sys
|
||
import os
|
||
|
||
def convert_to_minecraft_icon(input_path, output_path="server-icon.png"):
|
||
try:
|
||
with Image.open(input_path) as img:
|
||
# 将图片转为RGBA模式(确保透明度兼容性)
|
||
img = img.convert("RGBA")
|
||
|
||
# 获取最小边长,中心裁剪为正方形
|
||
min_side = min(img.size)
|
||
left = (img.width - min_side) // 2
|
||
top = (img.height - min_side) // 2
|
||
right = left + min_side
|
||
bottom = top + min_side
|
||
img_cropped = img.crop((left, top, right, bottom))
|
||
|
||
# 缩放为64x64像素
|
||
img_resized = img_cropped.resize((64, 64), Image.LANCZOS)
|
||
|
||
# 保存为PNG格式
|
||
img_resized.save(output_path, format="PNG")
|
||
print(f"✔ 成功生成 Minecraft 服务器图标: {output_path}")
|
||
|
||
except Exception as e:
|
||
print(f"❌ 处理失败: {e}")
|
||
|
||
if __name__ == "__main__":
|
||
if len(sys.argv) < 2:
|
||
print("用法: python convert_icon.py <输入图片路径>")
|
||
else:
|
||
convert_to_minecraft_icon(sys.argv[1])
|