跟着老杨玩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()