原创 菜鸟哥 菜鸟学Python 1月15日
公众号 “菜鸟学Python”
第432篇原创,设为 “星标”,一起学Python!
新年新气象,新的一年,我们要给自己的好友送上最好的祝福,送上精心准备的礼物。如果我们能给自己的好友送上自己亲手制作的《小姐姐新年日历天气卡》,不仅体现出了自己的诚意,而且还能让好友获得充满新意的礼物。
今天就带领大家制作一款《小姐姐新年日历天气卡》,让大家能分享给自己的好友吧!
0.如何制作
为了让大家对这款新颖的天气卡有直观的印象,我们首先来看一下它的效果吧:
可以看到,这张天气卡主要是分为四个部分,分别是画面最上方的日期内容显示,偏上方的装饰花、中间部分的中英文名言内容以及最下方的天气内容的展示。画面整体布局非常的合适,而且背景图是美丽的小姐姐,让这张新年天气卡瞬间充满了吸引力。
requests 2.23.0
urilib 1.25.3
gzip python标准库
json 2.0.9
PIL 7.2.0
datetime python标准库
1.图片的处理
对于程序中涉及到的图片内容的操作,都是利用PIL库来进行完成的,例如下图程序:
上述程序中,我们利用PIL中的Image文件中的open函数来打开背景图片和装饰花图片,然后创建一个和背景图相同大小的ImageDraw对象,该对象用于上面提到的名言和天气信息的叠加。接下来我们来分别看一下日期内容、名人名言以及天气信息是如何获取的吧。
2.日期内容
对于日期内容来说,是最容易获取的,我们只需要利用python的内置标准库datetime就可以来制作日期的内容信息。
3.名言
对于名言内容的获取,我们通过金山词霸的接口来直接抓取,它会每天进行名言的更新,而且对于接口的请求,不需要设置复杂的反扒措施,直接请求就能获取。
4.天气信息
对于天气信息的获取,同样是通过json数据接口来进行获取的,但是相比名言爬取,稍微复杂的是,我们不仅需要对json的数据进行提取,而且还要根据json数据中的天气信息在天气卡中展示相应的天气图标。
上述的程序中,我默认的城市是北京,大家也可以根据自己所在的城市,进行相应的修改。此外,对于天气图标的设置,这里我只是简单的获取了“晴”、“多云转晴”、“小雪”等11种天气的类型。因此不在这十一种天气中的图标暂时还不能展示。大家也可以不断的补充完善天气类型,让天气图标的显示更加丰富。
5.图片的展示
对于信息获取完毕后,接下来就是对于内容在背景图上的展示了,好的布局才能体现出价值,所以对于图像的各个部分展示需要做出合理的规划。对于布局规划,大家可以获取源码来详细的查看,这里我们对于日期信息和名言部分的内容做一下简单的程序讲解。
- 首先是在ImageDraw对象中画出了三个粉红色矩形框,方便我们后续在三个矩形框中绘制天气信息;
- 然后分别在ImageDraw对象的(40,50)和(30,300)的位置分别添加了日期信息和名言内容的信息。
- 对于天气信息的展示,同样也是在ImageDraw对象上进行绘制。将日期、名言和天气信息绘制到ImageDraw对象上后;
- 最后利用
Image.alpha_composite
函数将背景图像和ImageDraw对象叠加到一起,形成我们的天气卡。
好了,我们来展示一下组合的成果,方便大家来制作自己的新年日历天气卡。
小编是iu的粉丝,悄悄的做了一个iu的日历,嘿嘿~~
是不是很酷啊,学Python就是这么有趣好玩,只有把编程的技术运用起来,能运用到实际的生活中去,这样的编程才有意思。如果你也想生成小姐姐日历,可以找小编。
如何免费帮你生成小姐姐日历,可以找小助手帮忙。
公众号后台输入:小助手 ,暗号:日历