Tengo un mensaje de texto que dice "Lo estoy haciendo bien". Quiero poner este texto sobre un fondo precioso que he generado. Quiero poner "I am doing great"
sobre una imagen "image.jpg"
presente en el sistema. El punto de partida del texto debe ser X, y en píxeles.agregando un texto sobre una imagen en python usando imagemagik/PIL
probé el siguiente fragmento, pero estoy teniendo errores: Fragmento:
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")
error:
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'
parece que hay un error en el PIL: http://grokbase.com/t/python/image-sig/114k20c9re/perhaps-bug-report
¿Hay cualquier solución que puedo probar?
esto menciona cómo dibujar, no cómo escribir texto. ¿Te gustaría dibujar letras? No soy para typograpfy usando pil. – user993563
Me temo que realmente no entiendo la diferencia entre dibujar texto en una imagen y escribir texto en una imagen. – badp
actualización, por favor revisa la parte de edición. – user993563