2009-04-14 62 views
1

我有一個使用PIL將文本寫入圖像的python腳本。這一切都工作得很好,除了當我遇到他們的回車字符串。我需要保留文本中的回車。而不是寫回車的圖像,我得到一個小盒子角色的回報應該是。下面是寫入文本的代碼:使用PIL在Python中編寫文本返回圖像

<code> 
draw = ImageDraw.Draw(blankTemplate) 
draw.text((35 + attSpacing, 570),str(attText),fill=0,font=attFont) 
</code> 

attText是我遇到的變量有問題。在寫它之前,我將它轉換爲字符串,因爲在某些情況下它是一個數字。

感謝您的幫助。

回答

7

讓我們來思考一下。 「迴歸」意味着什麼?這意味着向左走一段距離,向下走一段距離並恢復顯示字符。

你必須做下面的事情。

y, x = 35, 570 
for line in attText.splitlines(): 
    draw.text((x,y), line, ...) 
    y = y + attSpacing 
+0

很好,工作。謝謝。 – Casey 2009-04-14 17:42:44

0

你可以嘗試下面的代碼,適合我的需求非常好:

# Place Text on background 
    lineCnt = 0 
    for line in str(attText): 
     draw = ImageDraw.Draw(blankTemplate) 
     draw.text((35 + attSpacing,570 + 80 * lineCnt), line, font=attFont) 
     lineCnt = lineCnt +1 

表達「Y + 80 * LINECNT」移動文本向下取決於直線y位置沒有。 (換檔的係數「80」必須根據字體進行調整)。