#!/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()