python 日历壁纸_极客编程日历2018桌面壁纸(转载及完善)

转载声明

本文转载自简书文章【极客编程日历2018桌面壁纸】,并进行了补充。

图灵社区出版了一本极客编程日历“Happy Hacking 2018” ,实体已经售罄,但是提供了PDF电子版下载。我们可以编写脚本,把日历和桌面壁纸结合在一起。

作者:Paralevi

链接:https://www.jianshu.com/p/912ce01d4752

來源:简书

在网上看了这篇文章后对自动合成壁纸蛮感兴趣的,但是把脚本粘过来执行时一直报错,最后查了不少信息才搞定,在此进行填坑记录。

1.环境说明

系统:windows10 64bit

Python 3.6.0 64bit

下载地址:https://www.python.org/downloads/

ImageMagick-6.9.9-34-Q8-x64-dll.exe :Wand包依赖软件,用于调用API进行图片处理

下载地址:http://www.imagemagick.org/download/binaries/ImageMagick-6.9.9-34-Q8-x64-dll.exe

注意:安装时需要勾选 Install development headers and libraries for C and C++,否则可能无法正常使用!(多谢 @林光光 同学提醒)

Ghostscript(版本>=9.18):Wand包依赖软件,这里主要用于将PDF文件转换为图片(注意版本越高转化效果越好)

下载地址:http://downloads.ghostscript.com/public/old-gs-releases/gs918w64.exe

2.准备工作

1)确保python已安装pip,验证方法:在cmd的下执行 pip --version ,如有问题请自行百度解决

2)安装Wand:在cmd下执行 pip install Wand

3)下载图灵日历

4)准备一张自己喜爱的壁纸

3.编写壁纸合成脚本(脚本完全转载,基本未做改动)

importdatetimefrom wand.image import Image #pip install Wand

PDF_SOURCE= 'C:/Users/windyofsky/Pictures/code_calendar_2018.pdf[{}]' #下载的PDF日历路径

BACKGROUND_SOURCE = 'C:/Users/windyofsky/Pictures/backgrounds.jpg' #使用的壁纸

OUTPUT = 'C:/Users/windyofsky/Pictures/turing.jpg' #生成的壁纸路径

PAGE_OFFSET= 6 #周历从PDF文档的第7页开始

MARGIN_LEFT = 200 #周历的左边距

MARGIN_TOP = 200 #周历的上边距

current_week= datetime.datetime.now().isocalendar()[1] #获取当前是第几周

page = PAGE_OFFSET + current_week #获取周历在PDF文档中的页号

with Image(filename=PDF_SOURCE.format(page), resolution=200) as calendar:

with Image(filename=BACKGROUND_SOURCE) as background:

background.composite_channel('default_channels', calendar, 'blend', MARGIN_LEFT, MARGIN_TOP)

background.save(filename=OUTPUT)print('壁纸生成成功:',OUTPUT)

4.执行Python脚本即可生成合成后的图片

5.相关参考资料:

ghostscript最新版本使用说明,可做参考:https://www.ghostscript.com/doc/9.22/Use.htm

wand参考文档,本小节详细介绍了composite_channel的使用方法,可做参考:http://docs.wand-py.org/en/0.4.4/wand/image.html#wand.image.BaseImage.composite_channel

ghostscript官网:https://www.ghostscript.com/

Wand官方文档:http://docs.wand-py.org/

ImageMagick官网:http://www.imagemagick.org/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值