自制表情包

跟着老杨玩PYTHON

自制表情包

首先我们缕缕思路,表情包即是一张好玩的图片,再来句画龙点睛的一句话,这里已经准备好了金馆长的表情和熊猫人的头像,接下来就利用代码实现把。

安装第三方库

pip insatll pillow

from PIL import Image,ImageDraw,ImageFont
def create_img(big_path='./bg.jpg',small_path='./1.jpg',filename='test.png'):
    # 打开大图
    big= Image.open(big_path)
    # 打开小图
    small = Image.open(small_path)
    # 取得大图的宽高
    big_width,big_height = big.size
    # 取得小图的宽高
    small_width,small_height = small.size
    # print(small_width,small_height)
    # 让小图居中显示  x轴居中
    x = int((big_width-small_width)/2)
    # 让Y轴居中显示  Y轴居中
    y = int((big_height-small_height)/2)
    # 将小图居中粘贴  五官在背景正中间
    big.paste(small,(x,y))
    # 保存为一张图片
    big.save(filename)
    # 返回生成的图片路径名
    return filename

# 生成带文字的表情包
def create(data,image,filename='finall.png',color='white',font_path='./ziti/miaowu.ttf'):
    # 打开需要添加文字的图片
    img = Image.open(image)
    # 得到图片的宽高
    width,height = img.size
    # 图片宽度除以文字的个数得知每个文字的宽度
    str_width = int(width/len(data))
    print(str_width)
    # 设置字体的格式以及尺寸
    font = ImageFont.truetype(font_path,str_width)
    # 文字的宽度和文字的高度
    text_width,text_height = font.getsize(data)
    # 背景图应该是和图片宽度相等,增加文字部分的高度
    back_height = height+text_height
    # 生成背景图
    back_img = Image.new('RGB',(width,height+text_height),color=color)
    # 将图片贴在新生成的图片上
    back_img.paste(img,(0,0))
    # 创建绘制对象
    draw = ImageDraw.Draw(back_img)
    # 将总宽度减去文字的总宽度除以2等于将文字居中
    x = (width-text_width)/2
    y = height
    draw.text((x,y),data,fill='black',font=font)
    back_img.save(filename)

def main():
    res = create_img()
    create('还不快来学python,我看你是看不起我胖虎', res)
if __name__=='__main__':
    main()

你可能感兴趣的:(自制表情包)