本文源于《用Python自动化生成倒计时图片》的想法并结合《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.GitHub项目地址https://github.com/wwtm/gitpython_examples▼点击成为社区注册会员      喜欢文章,点个在看

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

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

    别忘记你的三连!!别忘记你的三连!!别忘记你的三连!! 000.效果预览 001.创建图像 RGBA 值是一组数字, 红.绿.蓝和alpha(透明度) 代表0(根本没有)到255(最高)的整数 在 P ...

  2. 来了,来了~用python制作一个“除夕夜倒计时”海报

  3. python图像识别生成矢量图_使用python制作矢量图

    Get一个使用python制作矢量图的新技能: 前言: Matplotlib远比我们想象的强大,而这只是众多python强大的包中的一个,不愧是群英荟萃. 绘图后端我们一般是看不见的,matplotl ...

  4. 春节倒计时,让我来秀一手:用Python制作一个对联生成器

    前言 跨年跨完了,马上就要迎来春节了,这不得秀一手? 那就直接开始春节的表演呗 勉勉强强来用python制作对联生成器吧 效果展示 这里的话,你自己想要啥春联主题是可以搜索滴,有些地方也是可以看着改的 ...

  5. Android蒙版倒计时,【倒计时海报设计】- 虎课网

    我们在大街上经常会看到各种宣传海报,有时商家为了达到促销的目的会在醒目的地方张贴一张倒计时海报,为的就是吸引群众的眼睛,大家了解PS倒计时海报设计的制作过程吗?如果对这方面操作不太了解的话,大家可以关 ...

  6. matlab制作打地鼠游戏,Python制作打地鼠小游戏

    原标题:Python制作打地鼠小游戏 导语 大家好,欢迎来到 Crossin的编程教室 ! 打地鼠游戏相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠呗~ 今天就给大家分享一个 ...

  7. 基于Python制作的消消乐小游戏

    导语 哈喽,好久不见.消失人口上线更新一波每月必出的 python 制作小游戏系列文章.本期我们将制作一个消消乐小游戏,让我们愉快地开始吧 开发工具 Python 版本:3.6.4 相关模块: pyg ...

  8. python多张图片合并拼接,python制作sprite图、雪碧图

    python多张图片合并拼接,python制作sprite图.雪碧图 整理图片集 找两个文件夹,yangying和zhaoliying,分别放上照片8张,共16张照片. 创建sprite.py # 多 ...

  9. arcgis python工具-使用python制作ArcGIS插件(1)工具介绍

    使用python制作ArcGIS插件(1)工具介绍 by 李远祥 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是 ...

最新文章

  1. windows安装TensorFlow和Keras遇到的问题及其解决方法
  2. 前端应该掌握的网络知识(1)
  3. java ee文件下载_JavaEE实现文件下载
  4. 【转载】DNN6开源CMS
  5. centos5 安装python 需要的rpm包
  6. 黄聪:360浏览器、chrome开发扩展插件教程(1)开发Chrome Extenstion其实很简单
  7. 使用监控宝监控php-fpm状态
  8. vue中swiper,vue-awesome-swiper实现轮播;鼠标移入暂停,移除播放;点击暂停按钮暂停,再点击播放。
  9. VC++实现内存映射文件(附源码)
  10. LOMO+XQDA(2015CVPR)
  11. 大疆网上测评题库_大疆校招笔试题及参考(一个小编程题)
  12. 经典4电阻差动放大器
  13. tablueau地图标记圆形_高德/百度地图画圆标记
  14. omi html转义,特殊字符读法
  15. 快速学习COSMIC软件规模度量方法
  16. python 列表操作(完整版)
  17. SQL Server 常见的7种约束以及where条件表达式
  18. linux用户日志在哪里看,Linux用户登录记录日志和相关查看命令汇总
  19. 软件测试的前景怎么样?要不要转行软件测试?
  20. Automatic Modulation Classification UsingConvolutional Neural Network 解读(基于SPWVD和BJD特征融合的卷积神经网络调制自动)

热门文章

  1. Unity优化 lod技术
  2. MSE(均方误差)、MAE(平均绝对误差)
  3. 1+1/2!+1/3!+…+1/20!
  4. 第一讲、雷达基本公式(matlab)
  5. 组合数学 —— 斯特林数(Stirling)
  6. 科奥斯扫地机器人怎么样_科沃斯和小米扫地机器人哪个好?有何区别
  7. GD32系列单片机EXTI外部中断配置
  8. 可解释性神经网络(可视化):CAM/Grad-CAM pytorch相关代码
  9. 【星海出品】sqlite入门
  10. 华为 中间系统IS-IS协议基础配置