2009-04-14 6 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

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は+ LINECNTが* 80」ダウンラインに応じて、yの位置を、テキストを移動していません。 (シフトの要因「80」はフォントに合わせて調整する必要があります)。

関連する問題