天天看點

python儲存turtle繪制的圖檔_turtle繪圖儲存png圖檔

記錄學習儲存png圖檔過程。

python的turtle可以給各種圖。

想儲存圖檔。除了手動截圖外,怎麼用python儲存成PNG圖檔呢。

網上查找到關鍵代碼:

img = getscreen()

img.getcanvas().postscript(file="pic.eps")

但是不是PNG格式的。

後面找到PIL庫可以将打開圖檔儲存為另一個格式。

im = Image.open("pic.eps")

im.save("pic.png")

但是報錯,

OSError: Unable to locate Ghostscript on paths。

:無法在路徑上找到Ghostscript

更新了一下PIL庫,還是一樣。

網上搜了下也有人遇到的,搜出來的遇到相同問題都看了,但是沒有解決。。一時不知怎麼辦。

突然看到搜出清單有 一個:PIL.EpsImagePlugin — Pillow (PIL Fork) 3.2.0 文檔。

點進去看是PIL.EpsImagePlugin源碼。

看了一下發現有一段代碼:

if gs_windows_binary is not None:

if not gs_windows_binary:

raise WindowsError('Unable to locate Ghostscript on paths')

command[0] = gs_windows_binary

這不就是那個報錯嗎?查這個gs_windows_binary又看到:

gs_windows_binary = None

if sys.platform.startswith('win'):

......

for binary in ('gswin32c', 'gswin64c', 'gs'):

if which(binary) is not None:

gs_windows_binary = binary

break

......

看不懂啊!沒有什麼學習解決不了的,經學習了解了這段代碼的意思:

判斷目前系統是window系統,

shutil.which():檢測指令對應的檔案路徑。

知道了是ghostscript的指令。

去安裝ghostscript,配置環境變量。

運作代碼,還是報錯!

cmd輸入指令gswin64c沒問題。

打開IDLE,運作上面的 shutil.which('gswin64c'),什麼都沒有,print是none!

關掉所有IDLE和代碼 視窗,重新打開。正常了運作了。