社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

新年新气象,90行代码菜鸟用Python制作小姐姐新年日历天气卡,送人太有面子啦!

菜鸟学Python • 4 年前 • 380 次点击  

公众号 “菜鸟学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就是这么有趣好玩,只有把编程的技术运用起来,能运用到实际的生活中去,这样的编程才有意思。如果你也想生成小姐姐日历,可以找小编。


如何免费帮你生成小姐姐日历,可以找小助手帮忙。

公众号后台输入:小助手 ,暗号:日历





年度爆款文案



点这里,获取新手福利

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/106228
 
380 次点击