输入词语生成对应的卡片用来定制2

参考上篇输入词语生成对应的卡片用来定制

在第二次举办活动时,再加上一个正反面都可以看到的功能,代码如下:

from PIL import Image, ImageDraw, ImageFont

# 获取用户输入的词语列表
words = input("请输入词语,以空格分隔:").split()

# 设置图片尺寸
width, height = 860, 540

# 创建图片并设置背景颜色为白色
for idx, word in enumerate(words):
    # 创建白色背景图片
    image = Image.new('RGB', (width, height), 'white')
    draw = ImageDraw.Draw(image)
    
    # 使用PIL内置字体(也可以指定其他字体文件)
    font = ImageFont.truetype("simkai.ttf", 80)
    
    # 计算文字宽度和高度
    text_width, text_height = font.getsize(word)
    
    # 计算文字位置,使其居中显示在图片中间偏移一定距离(这个x,y可以调整,下同)
    x = (width - text_width) // 2 - 80
    y = (height - text_height) // 2 - 50
    
    # 在图片上添加文本(黑色)
    draw.text((x, y), word, fill='black', font=font)
    
    # 在另一行旋转180度显示文字
    rotated_word = word
    rotated_x = (width - text_width) // 2 + 80
    rotated_y = (height - text_height) // 2  + 50# 在下一行
    rotated_text_image = Image.new('RGB', (text_width, text_height), color='white')
    rotated_text_draw = ImageDraw.Draw(rotated_text_image)
    rotated_text_draw.text((0, 0), rotated_word, fill='grey', font=font)
    rotated_text_image = rotated_text_image.rotate(180)
    image.paste(rotated_text_image, (rotated_x, rotated_y))
    
    # 保存图片到本地
    image.save(f'output_image_{idx + 1}.png')
    print(f'图片 {idx + 1} 已保存')

print('所有图片已保存到本地。')

效果图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值