极客编程日历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

  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.编写壁纸合成脚本(脚本完全转载,基本未做改动)

import datetime

from 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.相关参考资料:

  1. ghostscript最新版本使用说明,可做参考:https://www.ghostscript.com/doc/9.22/Use.htm
  2. wand参考文档,本小节详细介绍了composite_channel的使用方法,可做参考:http://docs.wand-py.org/en/0.4.4/wand/image.html#wand.image.BaseImage.composite_channel
  3. ghostscript官网:https://www.ghostscript.com/
  4. Wand官方文档:http://docs.wand-py.org/
  5. ImageMagick官网:http://www.imagemagick.org/

原文地址:https://www.cnblogs.com/windyofsky/p/8402346.html

时间: 2024-10-11 02:46:44

极客编程日历2018桌面壁纸(转载及完善)的相关文章

极客编程小挑战#28:实现二级菜单的炫酷显示效果

那么本期挑战的内容是什么?容我卖个关子- 极客标签是一个学习前端知识和分享前端知识的平台.以往的挑战形式,更加偏向于学生完成老师布置的作业.而本期挑战,希望参赛者换个身份参与进来,将自己学习的知识讲授给他人.通过课程的形式,完成任务,并讲解详细,以帮助前端初学者更好地学习为目的,完成此次挑战.   本期挑战: 实现 单击按钮“分享更多”后,下级菜单呈现炫酷显示效果,下级菜单内容如下图(极客标签每篇文章后的分享方式),效果越炫越好- 本次挑战的作品在课程库中添加,以讲解详细.课程效果好为目的.课程

极客编程必备的五大PHP开发应用

有了PHP应用可以帮助编码爱好者事半功倍,提升项目质量:有了这些最新的且灵活的PHP应用使创建编码项目更加简单.便捷.本文,我们收集了五大最新的PHP开发应用. PHP应用在网络上并不多见.最重要的是,很难找到有关这方面的资源.代码指南对于编程爱好者来说非常重要且是必备的,因为它能为你节省大量的时间,让你自由编码. PHP编码者需要掌握该领域的新技术,并且在项目中必须运用新的功能.有了PHP应用可以帮助编码爱好者事半功倍,提升项目质量:有了这些最新的且灵活的PHP应用使创建编码项目更加简单.便捷

极客编程小挑战#27:生成动态大眼睛的效果

本期挑战: 生成如下动态效果:鼠标放在眼睛黄色区域上,眼珠随鼠标动:鼠标放在其他位置,眼珠无反应.(点击查看动态效果) 提交方式: 录制代码编写过程或最终代码:点击开始 跟帖发布代码预览地址(使用GB按钮可以直接嵌入发帖回复中):演示地址 [强烈提醒]加入QQ群:157757552, 获奖用户及递交快递联系方式 [强烈提醒]请在个人信息中添加QQ号,方便我们联系人获得快递地址 原文链接:http://www.gbtags.com/gb/share/5908.htm   礼品赞助: 本期奖品共有5

【OneAPM】极客编程挑战#023:使用HTML5画布生成渐变自由落体小球效果

本期挑战 给定如下HTML: <canvas id="gbcanvas" width="350" height="300"></canvas> 阅读如下的相关HTML5画布教程: HTML5画布实现的粒子运动效果 HTML5画布Canvas基础入门 请使用HTML5画布生成一个自由落体效果的渐变小球,效果如下(点击下图查看GIF动画) 渐变色由#dd4814开始, 由#FFFF66结束 提交方式: 录制代码编写过程或最终代

【OneAPM】极客编程挑战#025:发挥想象生成漂亮炫酷的SVG动画效果

活动链接:http://www.gbtags.com/gb/share/5610.htm 本期挑战 提供如下的SVG图形,请使用任何技术生成基于如下SVG图形的动画效果,看看谁设计的动画效果最酷 ~~ <svg width="720px" height="486px"> <g id="layer1"> <path style="fill:#888888" d="m 434.02002,3

极客编程小挑战#30:用CSS3实现各种钟表的显示效果

本期挑战: 利用css3制作钟表表盘效果.发挥想象.可以电子表或者是石英表,尽量做得炫酷.以下为两个示范,点击即可查看. 提交方式: 录制代码编写过程或最终代码:点击开始 跟帖发布代码预览地址(使用GB按钮可以直接嵌入发帖回复中):演示地址 [强烈提醒]尽量通过添加课程,在本文评论中附上链接的方式提交答案,有特别奖励- [强烈提醒]提交了答案的人,请扫描下图中的二维码,加入微信群,方便工作人员进行信息统计 赞助商[时速云]介绍: 时速云TenxCloud是国内最早的容器云平台之一(Contain

极客编程小挑战#29:实现手机上常见的某一功能的效果显示

本期挑战: 实现手机上常见的某一功能的效果显示.可以是某个按钮的显示效果,页面跳转的显示效果,二级菜单的出现方式等.可以做已有的效果,也可以发挥你的想象,做出你期待的手机功能效果. 提交方式: 录制代码编写过程或最终代码:点击开始 跟帖发布代码预览地址(使用GB按钮可以直接嵌入发帖回复中):演示地址 [强烈提醒]尽量通过添加课程,在本文评论中附上链接的方式提交答案,有特别奖励- [强烈提醒]提交了答案的人,请扫描下图中的二维码,加入微信群,方便工作人员进行信息统计 本期礼品: 感谢美团云提供10

极客编程挑战#018:设计独一无二的页面 ”加载中“ 效果

本期挑战 请使用以下开练 LOGO 素材 为基础(三选一即可): 图片(base64):http://www.gbtags.com/gb/rtreplayerpreview/808.htm SVG图形:http://www.gbtags.com/gb/rtreplayerpreview/809.htm 或者基于以上图形的的自定义LOGO设计 挑战要求: 使用你所熟悉的任意前端技术(JS,CSS3,画布,SVG动画等等),生成一个漂亮动态的 ”页面加载中“ 效果,持续5秒后,页面即导向地址:htt

【石墨】极客编程小挑战#26:实现日期级联下拉选择框

详细内容请参见原文:http://www.gbtags.com/gb/share/5823.htm 本期挑战: 初始的html代码如下: <select name="year" id="year"> <option value="0">--</option> <option value="1999">1999</option> <option value=&qu