1. 程式人生 > >極客編程日歷2018桌面壁紙(轉載及完善)

極客編程日歷2018桌面壁紙(轉載及完善)

base tps 官方文檔 site 軟件 報錯 編寫 left .exe

轉載聲明


本文轉載自簡書文章【極客編程日歷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/

極客編程日歷2018桌面壁紙(轉載及完善)