用Python自动生成倒计时图片。废话不多说。
开心的开始吧~
开发工具Python版本: 3.6.4
相关模块:
PIL模块;
Os模块;
以及Python自带的一些模块。
安装Python并将其添加到环境变量中。pip可以安装所需的相关模块。
使用枕头库,可以自动生成倒计时图片。
小知识科普计算机程序通常将图像中的颜色表示为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 os for i in range(1, 22): # 创建图像,设置图像大小及颜色 im = Image.new('RGBA', (1000, 1800), (166, 12, 4, 255)) draw = ImageDraw.Draw(im) # 设置本次使用的字体 fontsFolder = 'C:WindowsFonts' 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) 复制代码效果展示
从pil导入image,imagedraw,imagefont
导入OS
for I in range (1,22):
#创建一个图像并设置图像大小和颜色
im = image . new(& # 39;RGBA & # 39;、(1000,1800)、(166,12,4,255))
draw = imagedraw . draw(im)
#设置这次使用的字体
font folder = & # 39;c:windows fonts & # 39;
font 1 = image font . truetype(OS . path . join(font folder,& # 39;华力金黑W8。TTF & # 39),420)
font 2 = image font . truetype(OS . path . join(font folder,& # 39;创始人兰亭杂志黑。TTF & # 39),40)
#计算每个文本的放置位置
txt size _ 1 = draw . textsize(& # 39;分离的夜晚& # 39;,font 2)
pos _ x _ 1 =(1000-txt size _ 1[0])/2
txt size _ 2 = draw . textsize(& # 39;也有& # 39;,font 2)
pos _ x _ 2 =(1000-txt size _ 2[0])/2
txt size _ 3 = draw . textsize(& # 39;天& # 39;,font 2)
pos _ x _ 3 =(1000-txt size _ 3[0])/2
txt size _ 4 = draw . textsize(& # 39;不,年味越来越少了& # 39;,font 2)
pos _ x _ 4 =(1000-txt size _ 4[0])/2
txt size _ 5 = draw . textsize(& # 39;但是我们都长大了。,font 2)
pos _ x _ 5 =(1000-txt size _ 5[0])/2
#设置文字放置位置和中心
draw.text ((pos _ x _ 1,200), 39分离的晚上& # 39;,fill=(217,217,217,255),font = font 2)
draw . text((pos _ x _ 2,300),& # 39;也有& # 39;,fill=(217,217,217,255),font = font 2)
draw . text((pos _ x _ 3,1050),& # 39;天& # 39;,fill=(217,217,217,255),font = font 2)
draw . text((pos _ x _ 4,1350),& # 39;不,年味越来越少了& # 39;,fill=(137,183,109,255),font = font 2)
draw . text((pos _ x _ 5,1440),& # 39;但是我们都长大了。,fill = (137,183,109,255),font = font 2)
# Draw wire frame
Draw . line((20,20),(980,20),(980,1780),。25)、width = 5)
#设置更改后的文本属性
txt size _ 6 = draw . textsize(Str(I),font 1)
pos _ x _ 6 =(1000-txt size _ 6[0])Str(I),fill = (137,183,109,255),font = font 1)
# im . show()
#保存图像
文件名= & # 39;天& # 39;+str(I)+& # 39;。巴新& # 39;
im.save(文件名)
复制代码效果显示
作者:戴
链接: