利用python生成exe程序可自动制作表情包

前言:有借鉴过网上几篇制作表情包的文章(时隔几天地址就不贴了~),表情包原图没改,只不过自己加了一些文字位置算法优化。

1.先添加表情包背景图,工程根目录新建file目录,放入head.jpg/face.jpg


image.png

image.png

2.主要改动是加了对文中在图中位置的智能匹配,可切割化,尽量偏向表情包中心,也可以继续扩展任意表情包背景的哦。

贴代码~(组件没有安装的自己安装)

#-*- coding:utf-8 -*-
import os
import pygame
from PIL import Image, ImageDraw, ImageFont
import time

#初始化
pygame.init()

#合成表情包背景
img = Image.open("file/head.jpg") #250*250
jgz = Image.open("file/face.jpg") #101*113
img.paste(jgz, (87, 57)) #左右,上下

#生成画布
draw = ImageDraw.Draw(img)
#字体
ttfront = ImageFont.truetype('simhei.ttf', 24)

#配图文字
text = input('请先点击下方输入区域填写配图文字\n一行尽量不超过8个字!\n换行请用空格代替\n最后按回车键结束:\n')
texts = text.split(' ')
count = 1
for text in texts:
    #   左右画布 一行最多8个字从30开始  25一个身位?那分配200个位置给8个字,前后各空置25 所以只要8个字要从开始位置为25
    #4个位置总需要100 所以从200划分掉字体的区域4*25 然后再除以2获取前后空置 最后加上预留的25 从(200-4*25)/2 + 25
    index_1 = (200-text.__len__()*25)/2 + 25

    #   上下画布  测试一个字20身位 预留5个身位 所以取25 起始位置为190
    index_2 = 190
    if count == 2:
        index_2 += 25
    draw.text((index_1, index_2), text, fill=(0, 0, 0), font=ttfront)
    count+=1

#利用时间戳生成表情包name
time_int = time.time()
img_name = str(int(time_int))

path = os.path.abspath(os.curdir)
img_path = path + "\images\%s.jpg" % img_name
img.save(img_path)

print('表情包合成完成,请在下面路径查看')
print(img_path)
print('^ ^ 谢谢使用~~~')

time.sleep(1.2)

3.根目录也新建一个images目录,用来存放生成表情包

4.先测试一下


image.png
image.png

这样images就多了一张新的表情包


image.png

5.打包生成.exe程序
pyinstaller -F -c -D --icon=my.ico faceimg.py
(--icon=my.icod程序logo图标可以去掉,也可以自己找一张)
dict文件夹里就会生成想要的exe程序了,重命名一下更利于快速找到exe哦


image.png

你可能感兴趣的:(利用python生成exe程序可自动制作表情包)