用python制作“除夕夜倒计时”海报,新的一年你准备好了么?
云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!
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]) / 2 wenhou = ["除夕夜", "贴春联", "把面发", "置新衣", "煮肉肉", "买年货", "大扫除", "祭灶台"] 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关于图像处理的模块,
加入了一些新的设计元素,
制作了新一版本的新年倒计时海报。
云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!
原文发布时间:2020-1-17
本文作者:GitPython
本文来自阿里云云栖号合作伙伴“清风Python”,了解相关信息可以关注“清风Python”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2020 开春程序员面试必备!拿走不谢!
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 软件技能在科技界很重要,如果你不会正确使用编程语言或平台,你可能得不到这份工作。 以下为译文: 软件技能在科技界很重要,如果你不会正确使用编程语言或平台,你可能得不到这份工作。 目前Indeed 人才招聘实验室跟踪调查了500多名技术人员,其中有哪些技能在美国最受欢迎? 以下是有关美国技术技能的新报告中所分析的结果。该调研团队由经济学家和研究人员组成,对Indeed.com网站在2014年至2019年的5年间发布的数百万个技术职位的招聘信息进行了研究,以发现软件技术公司最需要哪些技能。为了帮助你更好的发展职业生涯,以下是所有技术中最流行的五种编程语言和技能(倒序排列)。 JavaScript 作为前端的主要编程语言,JavaScript出现在14.5%的技术岗位招聘信息中。它不仅是一种广受欢迎的技能,也是使用最多的编程语言,69.7%的专业开发人员经常使用它编写代码。 该语言经历了不断的演变,特别是在库和框架方面。Angular是应用...
- 下一篇
程序员请收好:10个非常实用的 VS Code 插件
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 无论你是经验丰富的开发人员还是刚刚开始第一份工作的初级开发人员,你都会想让自己的开发工作尽可能轻松一点。正确的工具使用则可以帮助你实现这个目标。 如果你选择使用Visual Code作为IDE,你就可以使它符合你的偏好选择。实现此目的的一种方法是安装正确的插件。为了让你的生活尽可能的简单,你可以添加很多你想要的内容。 你使用的插件将会对你的工作效率以及工作方式产生很大的影响。这就是为什么我们要运用Visual Studio Code插件列表的原因。我们改变工具,工具再改变我们。——杰夫·贝佐斯(Jeff Bezos) 请注意,所有这些插件都可以在Visual Studio Marketplace 上免费获得。 Visual Studio Intellicode 下载超过320万次的Visual Studio Intellicode是Visual Studio下载次数最多的插件之一。而且,在我看来,它是你能用到的最有用的插件之一。 这个...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7