ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Can I use python to put text on an image, like "Property of me" or the file name something of the sort? What about multiple bits of text, like "proeprty of" AND the file name in separate corners of the image?
I know I can do it with imagemagick, I'm just wondering if I can do it directly inside of python (without calling an external program).
If anyone else is interested, here's my quick example (complete with transparency):
import Image, ImageDraw, ImageFont
from os import chdir, path
font_dir = "/usr/share/fonts/truetype/msttcorefonts/"
img_name = "sweet.jpg"
font_size = FontSize
fnt = ImageFont.truetype(font_dir+font, font_size)
lineWidth = 20
img = Image.open("ayo20.jpg")
imgbg = Image.new('RGBA', img.size, "#000000") # make an entirely black image
mask = Image.new('L',img.size,"#000000") # make a mask that masks out all
draw = ImageDraw.Draw(img) # setup to draw on the main image
drawmask = ImageDraw.Draw(mask) # setup to draw on the mask
drawmask.line((0, lineWidth/2, img.size,lineWidth/2),
fill="#999999", width=10) # draw a line on the mask to allow some bg through
img.paste(imgbg, mask=mask) # put the (somewhat) transparent bg on the main
draw.text((10,0), text, font=fnt, fill=bg) # add some text to the main
txt2img("This is a really weird image")