2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Python实战案例 PIL模块 Python实现自动化生成倒计时图片

Python实战案例 PIL模块 Python实现自动化生成倒计时图片

时间:2022-05-01 06:57:40

相关推荐

Python实战案例 PIL模块 Python实现自动化生成倒计时图片

前言

利用Python实现自动化生成倒计时图片。废话不多说。

让我们愉快地开始吧~

开发工具

Python版本:3.6.4

相关模块:

PIL模块;

os模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

本次利用Pillow库,实现自动化生成倒计时图片。

小知识科普

计算机程序通常将图像中的颜色表示为RGBA值。

RGBA值是一组数字,指定颜色中的红、绿、蓝和alpha(透明度)的值。

这些值是从0(根本没有)到255(最高)的整数。

这些RGBA值分配给单个像素,像素是计算机屏幕上能显示一种颜色的最小点。

像素的RGB设置准确地告诉你应该显示哪种颜色的色彩。

在Pillow中,RGBA值表示为四个整数值的元组。

比如红色表示为(255, 0, 0, 255),其中alpha值最大,意味着完全不透明。

图像像素用x和y坐标指定,分别指定像素在图像中的水平和垂直位置。

原点是位于图像左上角的像素,为(0, 0)

这里的示例图使用的是验证码文章里的一张图。

图片上成

代码实现

from PIL import Image, ImageDraw, ImageFontimport osfor i in range(1, 22):# 创建图像,设置图像大小及颜色im = Image.new('RGBA', (1000, 1800), (166, 12, 4, 255))draw = ImageDraw.Draw(im)# 设置本次使用的字体fontsFolder = 'C:\Windows\Fonts'font1 = ImageFont.truetype(os.path.join(fontsFolder, '华康俪金黑W8.TTF'), 420)font2 = ImageFont.truetype(os.path.join(fontsFolder, '方正兰亭刊黑.TTF'), 40)# 计算各文本的放置位置txtSize_1 = draw.textsize('距 离 除 夕 夜', font2)pos_x_1 = (1000 - txtSize_1[0]) / 2txtSize_2 = draw.textsize('还 有', font2)pos_x_2 = (1000 - txtSize_2[0]) / 2txtSize_3 = draw.textsize('天', font2)pos_x_3 = (1000 - txtSize_3[0]) / 2txtSize_4 = draw.textsize('不 是 年 味 越 来 越 少', font2)pos_x_4 = (1000 - txtSize_4[0]) / 2txtSize_5 = draw.textsize('而 是 我 们 都 长 大 了', font2)pos_x_5 = (1000 - txtSize_5[0]) / 2# 设置文本放置位置,居中draw.text((pos_x_1, 200), '距 离 除 夕 夜', fill=(217, 217, 217, 255), font=font2)draw.text((pos_x_2, 300), '还 有', fill=(217, 217, 217, 255), font=font2)draw.text((pos_x_3, 1050), '天', fill=(217, 217, 217, 255), font=font2)draw.text((pos_x_4, 1350), '不 是 年 味 越 来 越 少', fill=(137, 183, 109, 255), font=font2)draw.text((pos_x_5, 1440), '而 是 我 们 都 长 大 了', fill=(137, 183, 109, 255), font=font2)# 绘制线框draw.line([(20, 20), (980, 20), (980, 1780), (20, 1780), (20, 20)], fill=(217, 217, 217, 255), width=5)# 设置变化的文本属性txtSize_6 = draw.textsize(str(i), font1)pos_x_6 = (1000 - txtSize_6[0]) / 2draw.text((pos_x_6, 500), str(i), fill=(137, 183, 109, 255), font=font1)# im.show()# 保存图像filename = 'day' + str(i) + '.png'im.save(filename)

本文相关字体文件后台滴滴我

效果展示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。