|
Create text watermarks with PIL |
|
|
|
|
An interesting Python script from Planet Python for creating text watermarks in image files.
#!/usr/bin/python
from PIL import Image, ImageDraw, ImageFont
from math import atan, degrees
import sys
import os
FONT = "C:\\WINDOWS\\Fonts\\BKANT.TTF"
def main(filename, text, outfilename):
img = Image.open(filename).convert("RGB")
watermark = Image.new("RGBA", (img.size[0], img.size[1]))
draw = ImageDraw.ImageDraw(watermark, "RGBA")
size = 0
while True:
size += 1
nextfont = ImageFont.truetype(FONT, size)
nexttextwidth, nexttextheight = nextfont.getsize(text)
if nexttextwidth+nexttextheight/3 > watermark.size[0]:
break
font = nextfont
textwidth, textheight = nexttextwidth, nexttextheight
draw.setfont(font)
#draw.text(((watermark.size[0]-textwidth)/2,
# (watermark.size[1]-textheight)/2), text) #Höhe = Mitte
draw.text(((watermark.size[0]-textwidth)/2,
(watermark.size[1]-textheight)), text)
#Diagonal Zeichnen:
#watermark = watermark.rotate(degrees(atan(float(img.size[1])/img.size[0])),
#Image.BICUBIC)
mask = watermark.convert("L").point(lambda x: min(x, 55))
watermark.putalpha(mask)
img.paste(watermark, None, watermark)
img.save(outfilename)
if __name__ == "__main__":
if len(sys.argv) != 4:
sys.exit("Usage: %s <input-image> <text> <output-image>"
% os.path.basename(sys.argv[0]))
main(*sys.argv[1:])
|
|
Last Updated ( Tuesday, 23 June 2009 )
|