用python制作“除夕夜倒计时”海报,新的一年你准备好了么?

2023-11-04 04:20

本文主要是介绍用python制作“除夕夜倒计时”海报,新的一年你准备好了么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文源于《用Python自动化生成倒计时图片》的想法(来源:法纳斯特 | 作者:小F)并结合《python繁琐工作自动化》一书,增添了一些设计元素,制作了新一版本的新年倒计时海报。
000.
效果预览

001.创建图像RGBA 值是一组数字,
红、绿、蓝和alpha(透明度)
代表0(根本没有)到255(最高)的整数
在 Pillow 中,
RGBA 值表示为四个整数值的元组。例如,红色表示为(255,0,0,255)这种颜色中红的值为最大,没有绿和蓝,
并且alpha 值最大,这意味着它完全不透明。绿色:(0,255,0,255)
蓝色:(0,0,255,255)
白色是各种颜色的组合:(255,255,255,255)
而黑色没有任何颜色:(0,0,0,255)灵感来源:2019新年倒计时动态海报系列Pillow 提供ImageColor.getcolor()函数,
所以你不必记住想用的颜色的RGBA值。该函数接受颜色名称字符串作为第一个参数,
字符串'RGBA'作为第二个参数,
返回一个RGBA 元组。from PIL import ImageColor
ImageColor.getcolor('red', 'RGBA')运行结果:
(255, 0, 0, 255)本例中的图像尺寸和颜色:
尺寸:1000*2160颜色:(174,60,58,255)相关代码如下:from PIL import Image, ImageDraw, ImageFont
import os# 创建图像,并设置尺寸和颜色
im = Image.new('RGBA', (1000, 2160), (174,60,58,255))
draw = ImageDraw.Draw(im)
002.设置字体要设置字体和大小,
我们首先将文件夹名称保存在fontsFolde中。
然后调用ImageFont.truetype(),
传入我们想要的字体的.TTF 文件,
之后是表示字体大小的整数。
将ImageFont.truetype()返回的Font对象
保存在arialFont这样的变量中,
然后将该变量传入text(),
作为最后的关键字参数。
# 使用使用的字体及字号
fontsFolder = 'D:/05.python_code/00.py_projects/new_year_last'
font1 = ImageFont.truetype(os.path.join(fontsFolder, 'wenzangshufang.ttf'), 580)
font2 = ImageFont.truetype(os.path.join(fontsFolder, 'SourceHanSerifCN-SemiBold.otf'), 90)
font3 = ImageFont.truetype(os.path.join(fontsFolder, 'SourceHanSerifCN-SemiBold.otf'), 180)
003.绘制矩形rectangle(xy, fill, outline) 方法
绘制一个矩形xy 参数是一个矩形元组,形式为(left,top, right, bottom)。left 和top 值指定了矩形左上角的x 和y 坐标,right 和bottom 指定了矩形的右下角。可选的fill 参数是颜色,将填充该矩形的内部。可选的outline 参数是矩形轮廓的颜色。
# 绘制矩形
left = pos_x_3
top = 1750
right = pos_x_3 + txtSize_3[0]
bottom = 1700 + txtSize_3[1]
draw.rectangle((left, top, right, bottom), fill=(217, 217, 217, 255))
004.绘制文本ImageDraw 对象还有text()方法,
用于在图像上绘制文本。text()方法有4 个参数:xy参数是两个整数的元组,指定文本区域的左上角text 参数是想写入的文本字符串可选参数fill 是文本的颜色可选参数font 是一个ImageFont 对象,用于设置文本的字体和大小
因为通常很难预先知道一块文本
在给定的字体下的大小,
所以ImageDraw 模块也提供了textsize()方法。textsize()方法返回一个两整数元组,
表示如果以指定的字体写入图像,
文本的宽度和高度。
# 计算各文本的放置位置
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]) / 2wenhou = ["除夕夜", "贴春联", "把面发", "置新衣", "煮肉肉", "买年货", "大扫除", "祭灶台"]
txtSize_3 = draw.textsize(wenhou[i-1], font3)
pos_x_3 = (1000 - txtSize_3[0]) / 2# 设置文本放置位置,居中
draw.text((pos_x_1, 200), '距 离 新 年 还 有', fill=(217, 217, 217, 255), font=font2)
draw.text((pos_x_2, 1400), '天', fill=(217, 217, 217, 255), font=font2)
draw.text((pos_x_3, 1700), wenhou[i-1], fill=im_color[i-1], font=font3)# 设置变化的文本属性
txtSize_4 = draw.textsize(str(i), font1)
pos_x_4 = (1000 - txtSize_4[0]) / 2
draw.text((pos_x_4, 600), str(i), fill=(255, 192, 0, 255), font=font1)
005.保存图像到本地
保存图像到当前目录中命名为:dayx.png
# 保存图像
filename = 'day' + str(i) + '.png'
im.save(filename)
006.我是总结参考了大佬的部分代码,
利用pillow关于图像处理的模块,加入了一些新的设计元素,
制作了新一版本的新年倒计时海报。回复“新年快乐”
可获取完整代码的Github地址-END-
往期精彩
1、python图像处理:一福变五福2、用python自动化生成爱豆日历3、用python打造实时截图识别OCR今日互动话题
在2020年,我希望能完成自己制定的年度计划,能够合理的规划自己的时间,平衡好各方面之间的关系。
同时,我也希望自己能够读几本关于情感的书,心智能够成熟一点。
最后的愿望就是,保持身体健康。新的一年,你有哪些愿望? 欢迎留言分享。如果本文对你有所帮助,欢迎分享到朋友圈。

这篇关于用python制作“除夕夜倒计时”海报,新的一年你准备好了么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/343196

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.