2011-03-02 7 views
1

我正在開發一個CMS應用程序,用戶應該能夠按照自己的意願創建菜單。理想情況下,每個菜單對象不會是帶背景的文本,而是文本的圖像。我想通過以下兩種方式之一來設想這一點:是否有任何好的python庫生成和呈現圖像格式的文本?

a)通過在每個字母和腳本中渲染一個/多個圖像文件中的字體,給出一個單詞可以讓我將圖像序列串起來或一個包含所有字母組合的單個圖像文件。我知道這可以手動完成,但我覺得可能有一個圖書館來幫助解決這個問題。

b)使用某種圖像庫,可以渲染具有多種混合效果(例如漸變色,陰影,發光等)的文本。雖然我相信這個有點困難,但也許有些東西適合這種需要。

任何關於這個或任何類似庫的技巧?

在此先感謝!

布魯諾

回答

2

雖然現在我決定去使用網頁字體和CSS,幾年前我遇到了這個問題,並將一個小的項目放在一起,這個小的項目會根據通過的文件的模板圖像生成文本網址參數。

該項目仍在這裏公開:https://bitbucket.org/jsbueno/dynabutton - 它是作爲一個CGI腳本工作,但可以很容易地適應與更高效的服務器一起工作(如果你是建議,也建議進行一些安全調整把它放在網上)。您還可以使用它通過服務器端腳本生成所有圖像,並將生成的圖像文件在線。

(它使用PIL下)

是啊,它可以做的陰影,並與合適的參數發光,可以使用任何服務器安裝的字體,並使用圖像模板提供的背景,所以你可以手動應用任何效果。 (包括的temlates,雖然,相當業餘)

+0

這是你在那裏做的一個甜美的PIL包裝紙,正是我在找的東西。我調整了您的代碼,使其無需無縫地與CGI服務器集成即可與我的應用程序集成。太棒了! – Bruno

0

退房pycairo,在開羅渲染包綁定。它可以呈現文字和圖形。

0

那麼,利用現代CSS技術,不匹配客戶端字體的問題現在已經不是問題了。仍然存在對文本到圖像工具的需求。

PIL通常作爲這個問題的答案給出,但是我個人認爲,我也會給pythonmagick一個很好的看法。選擇最適合你的一個。

1

我們正在使用Imagemagick。

http://www.imagemagick.org/Usage/text/#attributes 

,這會使得一個簡單的按鈕與文字:

convert -background white -fill dodgerblue -font Candice -strokewidth 2 -stroke blue -undercolor lightblue -size 165x70 -gravity center label:Anthony  label_color.gif 

包裝成一個Python模塊,這是直線前進。

+0

非常整潔和強大。我正在與jsbueno的答案,因爲它更直接,並不需要第三方程序,但我會認真考慮ImageMagick,如果我需要更詳細闡述! – Bruno

相關問題