高斋晓开卷,独共圣人语。这篇文章主要讲述#yyds干货盘点#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, ImageFont
import 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]) / 2
txtSize_2 = draw.textsize(还 有, font2)
pos_x_2 = (1000 - txtSize_2[0]) / 2
txtSize_3 = draw.textsize(天, font2)
pos_x_3 = (1000 - txtSize_3[0]) / 2
txtSize_4 = draw.textsize(不 是 年 味 越 来 越 少, font2)
pos_x_4 = (1000 - txtSize_4[0]) / 2
txtSize_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]) / 2
draw.text((pos_x_6, 500), str(i), fill=(137, 183, 109, 255), font=font1)
# im.show()
# 保存图像
filename = day + str(i) + .png
im.save(filename)
效果展示
文章图片
【#yyds干货盘点#Python实战案例,PIL模块,Python实现自动化生成倒计时图片】
文章图片
推荐阅读
- #yyds干货盘点#编写 if 时尽量不要带 else
- HarmonyOS 属性动画扩展
- #展望我的2022Flag# 用未来可能会发生的事情推断今天该做的事
- 一个BPMN流程示例带你认识项目中流程的生命周期
- #聊一聊悟空编辑器# 2022新年的悟空编辑器
- #yyds干货盘点# 简单的文本预处理
- Adobe Reader 缓冲区溢出漏洞 (CVE-2010-2883)漏洞分析报告
- 教大家用 Springboot 返回 Json 数据及统一数据封装
- 使用 VSCode 调试 Electron 主进程代码