2015-03-25 38 views
-6

我是編程新手,也許我需要參考一門基礎的計算機科學入門課程,所以如果你能指導我,我會很高興。但這裏是我的問題:直接編碼到沒有圖形卡的圖像/ JPEG?

我使用Python工作。我想代碼說一個800x800的圖像文件(JPEG或PNG或PDF)。不管它是什麼,我希望能夠指定哪些像素走哪裏或者哪些不是特定的,也許能夠繪製直線,圓形,將圖像插入到畫布上,然後將其導出到圖像文件(JPEG等)。

我如何做到這一點?

我很清楚我可以使用pygame和/或tkinter在畫布上創建事物,然後將其寫入文件。然而,這是使用圖形卡來渲染圖像,顯示它,然後保存它。正確?這個過程是如何工作的? Python(或任何其他具有API的程序)在畫布上繪製東西,像Tkinter這樣的界面在畫布上繪製出來,將信息發送到顯卡來顯示,然後將原始像素「導出」爲圖像/ JPEG文件。對?

第二個問題是,有沒有辦法編寫畫布來排列項目並將其保存到文件?沒有看到它?不涉及顯卡?

+2

我想你應該看的第一個鏈接是http://stackoverflow.com/help/how-to-ask – jonrsharpe 2015-03-25 00:52:13

回答

3

安裝Pillow。然後,

from PIL import Image, ImageDraw 

image = Image.new("RGB", (800, 600), (255,255,255,0)) 
draw = ImageDraw.Draw(image) 
draw.line([(0, 0), (799, 599)], (0, 0, 0, 0), 1) 
image.save("test.jpg", "JPEG") 
+1

爲什麼你要安裝'Pillow',但你仍然需要導入'PIL'?這似乎是不好的設計。 – nbro 2015-03-25 02:16:59

+1

@Rinzler:AFAIK,PIL的工作被放棄了,所以有人將它分叉並稱之爲Pillow。模塊名稱保持向後兼容。但請不要誤解,我不輸入PIL,我正在輸入Pillow。 – Amadan 2015-03-25 02:19:36

+1

我知道。但他們可以給它一個新的名字。向後兼容性似乎不是問題,因爲Python 3代碼不會主要運行在Python 2解釋器上,所以我們爲什麼要關心兼容性?無論如何,它也應該遵循Python的模塊名稱約定,使用小寫字母:'從pil導入圖像'或'從枕頭導入任何'...# – nbro 2015-03-25 02:28:38

0

可以使用Canvas widget創建一個畫布,並把各種形狀和元素就可以了。擁有圖形卡和顯示器只是允許更多的交互性和反饋。要將結果保存到圖像,請參閱this question。我發現canvas.postscript()方法是有效的。

相關問題