我有一個文字說「我做得很好」。我想把這段文字放在我生成的可愛背景上。 我想將"I am doing great"
放在系統中的圖像"image.jpg"
上。 文本的起點應該是X,y(以像素爲單位)。使用imagemagik/PIL在python中的圖像上添加文本
我嘗試下面的代碼片段,但我有錯誤: 段:
import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
font = ImageFont.truetype("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf",40)
text = "Sample Text"
tcolor = (255,0,0)
text_pos = (100,100)
img = Image.open("certificate.png")
draw = ImageDraw.Draw(img)
draw.text(text_pos, text, fill=tcolor, font=font)
del draw
img.save("a_test.png")
錯誤:
Traceback (most recent call last):
File "img_man.py", line 13, in <module>
draw.text(text_pos, text, fill=tcolor, font=font)
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageDraw.py", line 256, in text
ink, fill = self._getink(fill)
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageDraw.py", line 145, in _getink
ink = self.palette.getcolor(ink)
File "/usr/local/lib/python2.7/dist-packages/PIL/ImagePalette.py", line 62, in getcolor
self.palette = map(int, self.palette)
ValueError: invalid literal for int() with base 10: '\xed'
似乎是在PIL的錯誤: http://grokbase.com/t/python/image-sig/114k20c9re/perhaps-bug-report
有任何解決方法,我可以嘗試?
這提到如何繪製,而不是如何寫文本。你想畫信嗎?我不用typographicfy使用pil。 – user993563 2012-02-14 12:34:51
恐怕我真的不明白將圖像繪製到圖像上並將文本寫入圖像的區別。 – badp 2012-02-14 12:38:25
更新,請chk編輯部分。 – user993563 2012-02-14 13:30:23