PetAgent/create_pet_avatars.py
2026-04-12 11:32:37 +08:00

74 lines
1.9 KiB
Python

#!/usr/bin/env python3
"""
创建宠物头像占位图片
"""
import os
from PIL import Image, ImageDraw, ImageFont
import io
def create_avatar_image(text, filename, size=(128, 128)):
"""
创建一个带有文字的圆形头像图片
"""
# 创建一个新的图像
img = Image.new('RGB', size, color='lightblue')
draw = ImageDraw.Draw(img)
# 绘制一个圆
bbox = [(0, 0), size]
draw.ellipse(bbox, fill='white')
# 添加文字
try:
# 尝试使用系统字体
font = ImageFont.truetype("arial.ttf", 40)
except:
try:
# 尝试其他常见字体
font = ImageFont.truetype("simhei.ttf", 40)
except:
# 使用默认字体
font = ImageFont.load_default()
# 计算文字大小和位置
try:
bbox = draw.textbbox((0, 0), text, font=font)
text_width = bbox[2] - bbox[0]
text_height = bbox[3] - bbox[1]
except:
# 如果无法获取文字边界框,使用简单方法
text_width = text_height = 40
x = (size[0] - text_width) // 2
y = (size[1] - text_height) // 2
draw.text((x, y), text, fill='black', font=font)
# 保存图片
img.save(filename)
def main():
# 确保目录存在
os.makedirs('uploads/1', exist_ok=True)
# 创建宠物头像
avatars = [
('pet1_avatar.png', '猫1'),
('pet2_avatar.png', '狗2'),
('pet3_avatar.png', '猫3'),
('orange_cat.png', '橘猫'),
('husky.png', '哈士奇'),
('ragdoll_cat.png', '布偶'),
('corgi.png', '柯基')
]
for filename, text in avatars:
filepath = f'uploads/1/{filename}'
print(f'Creating {filepath}')
create_avatar_image(text, filepath)
print('All pet avatars created successfully!')
if __name__ == '__main__':
main()