Python生成福字 完整代码

之前有大佬完成了使用Python生成对联,我一想,对联都有了,怎么能缺了福字呢?本人稍加改动,基于Python+PIL生成一个福字。 背景图:

# -*- coding: utf-8 -*-

# pip install freetype-py
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
# pip install pillow

import os
import freetype
import numpy as np
import math
from PIL import Image

FONT_FILE = rC:WindowsFontsSTLITI.TTF
BG_FILE = rE:python_exercisecouplet2022shizuoack.png
BG_FILE2 = rE:python_exercisecouplet2022shizuoack2.png

def write_fortune(text):
    size, tsize = 640, 150
    # 白底
    im_out = Image.new(RGBA, (size, size), #ffffff)

    im_bg = Image.open(BG_FILE2)
    im_w = text2image(text, FONT_FILE, size=tsize, color=(0, 0, 0))
    w, h = im_w.size
    dw, dh = (size - w) // 2, (size - h) // 2

    # 加入背景:先缩放,再加入白底,再旋转
    tilt_size = int(size / math.sqrt(2))
    print(tilt_size)
    im_bg = im_bg.resize((tilt_size, tilt_size))

    im_out.paste(im_bg, (95, 95))
    im_out = im_out.rotate(45)

    # 加入福字
    im_out.paste(im_w, (dw, dh), mask=im_w)
    im_out = im_out.rotate(180)

    im_out.save(%s.png % text)
    os.startfile(%s.png % text)

if __name__ == __main__:
    write_fortune(福)
经验分享 程序员 微信小程序 职场和发展