如何DIY一个每月工作日历图生成器
本文最后更新于 282 天前,其中的信息可能已经有所发展或是发生改变。

开始搞之前我们先来看看成果:

写这个玩意是因为咱工作的日期和大部分人是不一样的,我又懒得下载一个app只为了看值班情况,有了这个程序我就可以快乐的给图片扔给他们来告诉他们啥时候可以找我了。


程序分析

这个程序比较简单,首先用户输入要生成的月份,年份,哪一天上班,上多久,休息几天。之后根据用户输入的月份和年份,使用一个二维数组来保存每个月的状态,最后,每天使用一个长度为三的数组保存,

[日期,是否休假,农历]

然后调用pillow画个图就搞定了。

开始编程

先创建一个文件,编辑好主方法和引用。

下一步,根据之前的分析,我们来制作生成每个月数组的类。

这里使用了两个方法,get_month_daysnum用来获取一个特定月份的日期,另一个方法生成月份的数组,为了给每月1号之前的日期补零,函数使用0-flag的方法,并将小于负数的值填为空。

测试方法:

此处输出了:

[[[‘ ‘, False, ”], [‘1’, True, ‘初四’], [‘2’, False, ‘初五’], [‘3’, False, ‘初六’], [‘4’, True, ‘初七’], [‘5’, False, ‘初八’], [‘6’, False, ‘初九’]], [[‘7’, True, ‘初十’], [‘8’, False, ‘十一’], [‘9’,False, ‘十二’], [’10’, True, ‘十三’], [’11’, False, ‘十四’], [’12’, False, ‘十五’], [’13’, True, ‘十六’]], [[’14’, False, ‘十七’], [’15’, False, ‘十八’], [’16’, True, ‘十九’], [’17’, False, ‘二十’], [’18’, False, ‘二十’], [’19’, True, ‘二十’], [’20’, False, ‘二十’]], [[’21’, False, ‘二十’], [’22’, True, ‘二十’], [’23’, False, ‘二十’], [’24’, False, ‘二十’], [’25’, True, ‘二十’], [’26’, False, ‘二十’], [’27’, False, ‘八月’]], [[’28’, True, ‘初二’], [’29’, False, ‘初三’], [’30’, False, ‘初四’], [’31’, True, ‘初五’], [‘ ‘, False, ”], [‘ ‘, False, ”], [‘ ‘, False, ”]]]

可以看到,8月1日为周一,初四,8月以外的日期都被空数据填充,该函数工作正常。接下来设计画图的类,这里使用了霞鹜文楷(点击跳转github),很不错的字体。

首先使用ImageFont.truetype方法初始化了字体。之后设置了白色背景的background作为画布,ImageDraw.Draw作为画笔。为了计算画布的总体尺寸,使用三个 textSize作为基础坐标来进行运算。并定义了间隔 height_jg/width_jg和出现的几种颜色。

在这里,date_size_w/h代表了每个日期的长和宽,这里不计算中间间隔,在img_w/h的部分计算了各个间隔,并将这两个值作为画布的大小对background进行resize操作。

之后依次描绘了标题和每周的周几。日期部分根据每天的日期不同、值班状态不同,重新计算了textSize,并根据值调整了每个文字描绘的位置。这一部分的算式比较复杂,但是参考标题图应该不难理解。

最后,根据状态描绘并保存到filename中,程序就完成了。

修改主程序:

执行,就可以在你的文件夹里查看到这个图片了。

具体的内容已经上传到了我的Github,可以直接下载代码进行查看。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇