我正在構建一個類似Paint的應用程序因爲我希望以後可以自由重新定位和修改形狀屬性,所以我使用Tkinter在Canvas上繪製形狀,而不是PIL繪圖或其他任何東西。從其他答案中,我找到了如何將畫布另存爲PNG,方法是先創建一個postscript文件,然後使用PIL將其轉換爲PNG。如何使用Python中的透明度將.EPS文件保存到PNG中
現在的問題是EPS文件有透明的空間,但PNG文件填充白色背景顏色的空白。我不知道我要去哪裏錯。
以下是我使用的功能。
def saveImg(event):
global canvas
canvas.postscript(file="my_drawing.eps", colormode='color')
imgNew = Image.open("my_drawing.eps")
imgNew.convert("RGBA")
imgNew.thumbnail((2000,2000), Image.ANTIALIAS)
imgNew.save('testImg.png', quality=90)
您的系統中是否安裝了ghostscript?順便說一句,你運行哪個平臺? –
@PauloScardine是的!我安裝了ghostscript。我在Mac OS上運行python 3.5.2 –
你可以在命令行上用GhostScript進行轉換,就像這樣:'gs -dSAFER -dNOPAUSE -dBATCH -r150 -sDEVICE = pngalpha -sOutputFile = testImg.png my_drawing.eps '。 '-r150'將分辨率設置爲150 DPI,分辨率越高,渲染時間越長。 –