python证书有什么用_用Python在获奖证书写上获奖者的名字

【转载】不懂PS,但是懂Python的我,要用Python在获奖证书上写入获奖者的名字。

写上名字后是这样的

开始编程,将名字写入到证书图片上。

1、准备好证书或者奖状的图片。

2、准备好写入名字的字体,我比较喜欢华文楷体和华文行楷,你也可以准备自己喜欢的字体。(PS:需要的字体可以直接百度下载。)

注意!!!

确保字体文件、证书图片和代码文件在同一个文件夹中,因为这里我没有涉及路径。

3、导入PIL库,导入这个库还有点不一样。

直接在cmd中,pip3 install PIL,还不行呢,这个我请教过刘老师,具体原因大家可以看点击原文阅读查看。

这里需要通过pip3 install Pillow进行安装。

4、导入需要使用的库,有了这些库,后面就好办了。

import PIL

from PIL import Image

from PIL import ImageDraw

from PIL import ImageFont

5、设置图片上名字使用的字体和大小,"华文行楷.ttf"这个名字就是文件夹中的字体文件名字,40对应字体大小。可以根据需要自己调节。

#设置所使用的字体

font = ImageFont.truetype("华文行楷.ttf", 40)

6、"证书.jpg"对应需要使用的证书或者奖状的文件名,通过Image.open将图片文件打开使用,然后其它绘画在该图片上绘制名字。

#打开图片

imageFile = "证书.jpg"

img = Image.open(imageFile)

#画图

draw = ImageDraw.Draw(img)

7、使用name变量指向需要写入的名字。

这里通过循环每一个字符计算出字符串name的长度和高度,目的是为了使得输入后的文字在图片里可以居中。因为文字写入的方式,是从确定写入点的起始坐标开始的,如果2个字确定的坐标是(0,0),当字符串是3个字的时候,从(0,0)开始就会显得靠右了。

name = "小溪流"

# 获取字体宽度,目的是为了将文字标准的居中。

sum_width = 0

sum_height = 0

for char in name:

width, height = draw.textsize(char, font)

sum_width += width

sum_height = height

# 获取字体宽度,目的是为了将文字标准的居中

8、img.size[0]获取的是图片的宽度,img.size[1]获取的是图片的高度。

图片的宽度/2-字符串的宽度/2=刚好计算出字符串居中的X坐标起点

图片的高度/2-字符串的高度/2=刚好计算出字符串居中的Y坐标起点

使用RBG(0,0,0)格式来设置字符串颜色。

#写字,img.size[0]图片的宽,img.size[1]图片的高,(数字1,数字2)开始写字的坐标位置,name写的什么,(0,0,0)RBG

#设置文字位置/内容/颜色/字体

draw.text((img.size[0]/2 - sum_width/2, img.size[1]/2 - sum_height/2), name, (0, 0, 0), font=font, bold=True)

# 将文字画上去

draw = ImageDraw.Draw(img)

9、将写好名字的证书保存好,并且重新命名。

#另存图片

img.save("证书-"+name+".jpg")

print("证书生成完毕!!!" )

10、耶,我获奖啦!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值