3

Hy,我正在使用沒有lib-freetype的PIL(Python圖像庫)。在沒有freetype的情況下在PIL中使用字體

在沒有安裝freetype的情況下,是否可以使用字體(我只需調整文本大小,而不是更多!)?

或者是否可以設置字體大小,而不設置字體的真實類型,所以使用默認的truetype?

這是一個服務器上的項目,我可以安裝純PIL,沒有任何支持truetypes的擴展!

+0

你能更詳細地描述你的項目嗎? 「我只需調整文字大小」是什麼意思? –

+0

我在python中創建了一個帶PIL的.png。使用draw-lib,我將圖像添加到文本中。爲此,我不需要freetype,truetypes或其他。 現在我想設置這個文本的(字體)大小。我可以用font = ImageFont.truetype(文件名,大小,索引,編碼)來做到這一點......但要使用它,我需要freetype,因爲第一個參數! 所以我的問題是,如果可以避免這個參數和freetype!也許PIL中有其他尺寸選項? – user1665232

+0

試試此碼: font = ImageFont.truetype('Arial.ttf',20) 我收到以下錯誤:ImportError:_imagingft C模塊未安裝 我認爲這是因爲我沒有安裝freetype – user1665232

回答

3

如果您閱讀manual for the ImageFont module,您會發現Python Imaging Library支持格式爲位圖字體的PILFont

因此,在您自己的計算機上,以您想要的尺寸呈現TrueType字體,以PILFont格式保存位圖,然後在服務器上使用PILFont。您可以使用otf2bdf將TrueType字體轉換爲BDF(Bitmap Distribution Format),然後PIL's pilfont utility將BDF轉換爲PILFont。見this question and its answers

+1

非常感謝,我會試試這個。所以我不能「縮放」或設置文本的大小,而不提供Fonttype或使用默認值? – user1665232

+0

PILFont是[**位圖**字體](http://en.wikipedia.org/wiki/Computer_font#Bitmap_fonts)等(與TrueType字體不同),它不可縮放。您需要分別以您想要繪製的每個尺寸呈現您的字體。我想你可能會嘗試渲染一次你需要的最大尺寸,並使用['Image.transform'](http://www.pythonware.com/library/pil/handbook/image.htm#Image.transform)來縮小它。但結果不如TrueType自己的縮放比例。 –

+0

爲什麼我得到錯誤:當我嘗試使用truetypefont時_imagingft C模塊未安裝? 我已經在Pil文件夾中找到了_imagingft.pyd,爲什麼它不起作用? – user1665232

相關問題