2010-11-01 47 views
4

我正在使用Python從文本創建圖像。我已經與PIL來回,坦率地說,它的字體和對齊選項需要很多工作。在不製作文件的情況下使用Imagemagick?

我可以子過程Imagemagick,它的工作很好,除了它似乎總是需要寫入文件到磁盤。我想要對圖像創建進行子處理,並將數據返回給Python,將所有內容都保存在內存中。

我已經研究了ImageMagick的一些假設的Python包裝,但它們都是絕望的多年過時或沒有任何記錄。即使在SO上進行大量搜索,也沒有明確指出事實上使用ImageMagic和Python的方式。所以我認爲進行子處理是最好的前進方向。

+0

http://superuser.com/questions/577992/convert-image-at-command-line-to-console-stream – 2015-09-25 21:02:27

回答

7

convert和其他ImageMagick命令可以輸出圖像數據到標準輸出,如果您指定format:-作爲輸出文件。您可以使用子流程模塊在Python中捕獲該輸出。

例如:

cmd = ["convert", "test.bmp", "jpg:-"] 
output_stream = subprocess.Popen(cmd, stdout=subprocess.PIPE).stdout 
+0

只是'格式:'似乎也適用於6.7。 – 2015-09-25 21:03:28

0

將數據傳輸到ImageMagick的工作要多得多,但有幾種基於Pango的解決方案。我之前使用過pango和pygtk,我確信你可以開發一個無頭文件gtk或gdk應用程序來將文本呈現給pixbuf。

更簡單的解決方案可能是使用python cairo鍵盤。

Pango在相當低的水平上工作,所以簡單的東西可能會複雜得多,但渲染質量難以打敗,並且它可以讓您對佈局進行精細控制。

+1

我已經看了攀高,開羅,但老實說,它們都很密集,沒有適當的文件。我見過的最常見的迴應是「Python文檔在哪裏?」是「它主要遵循cairo的C綁定,所以使用它」。對於那些試圖開始使用一套技術的人來說,這並不是一個好的選擇。 – Geuis 2010-11-01 03:10:58

相關問題