RSS category feeds

RSS site feeds

Home arrow Script Collection arrow Adobe applications arrow Create text watermarks with PIL
Create text watermarks with PIL Print E-mail

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 )
 
Next >

Feedback

Recommended

Comments

  • The general Concept of the API hasn`t change so much. But the Concept of storing... More...
  • Very interesting article. I haven't seen much on V6 automation. I don't recogniz... More...
  • This will not work with either Outlook 2007 or 2010. The default usage is of Sim... More...
  • This script is very useful. If you are having trouble to utilize this script you... More...
  • this instant django site has been down for a while now, if anyone has the execut... More...

Login Form






Lost Password?
No account yet? Register

Exits

My prefered Python IDE

My prefered Python editor is Pyscripter from MMExperts. It is not only an editor. Pyscripter is a full Python IDE including (remote) debugging, a class browser, and all other nice helpers which a full featured IDE needs.

Do you have a script for me ?

Do you have an interesting Python script which does some really cool thing on Windows ? Please post them to this site. It`s very simple - simply copy&paste it to this form. No login is requiered.

Hint: For syntax highlighting and correct Python intendation place your code between html tags <pre> and </pre>.

My prefered web framework

My prefered web framework for developing web applications is Django. Django calls itself The web framework for perfectionists with deadlines. It is a really fast, scalable and (thanks Python) the sexiest web framework of the world.