Skip to content

Instantly share code, notes, and snippets.

@MrCrap
Last active January 15, 2018 06:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MrCrap/d0087bdd5ada949183dead136fbfe30b to your computer and use it in GitHub Desktop.
Save MrCrap/d0087bdd5ada949183dead136fbfe30b to your computer and use it in GitHub Desktop.
python How to create watermark in image using text
#!/usr/bin/env python
import os
from PIL import Image, ImageDraw, ImageFont
def work(filename):
# Open the original image
main = Image.open("img/"+filename)
# Create a new image for the watermark with an alpha layer (RGBA)
# the same size as the original image
watermark = Image.new("RGBA", main.size)
# Get an ImageDraw object so we can draw on the image
waterdraw = ImageDraw.ImageDraw(watermark, "RGBA")
# Place the text at (10, 10) in the upper left corner. Text will be white.
font_path = "/System/Library/Fonts/Palatino.ttc"
font = ImageFont.truetype(font_path, 100)
im = Image.open("img/"+filename)
width, height = im.size
print height
print width
waterdraw.text((20, height-100), "www.coderevi.com", fill=(225,225,225,225), font=font)
# Get the watermark image as grayscale and fade the image
# See <http://www.pythonware.com/library/pil/handbook/image.htm#Image.point>
# for information on the point() function
# Note that the second parameter we give to the min function determines
# how faded the image will be. That number is in the range [0, 256],
# where 0 is black and 256 is white. A good value for fading our white
# text is in the range [100, 200].
watermask = watermark.convert("L").point(lambda x: min(x, 100))
# Apply this mask to the watermark image, using the alpha filter to
# make it transparent
watermark.putalpha(watermask)
# Paste the watermark (with alpha layer) onto the original image and save it
main.paste(watermark, None, watermark)
main.save("img/"+filename, "PNG")
if __name__ == '__main__':
li = os.listdir('img')
for f in li:
if("gif" in f): continue
print f
work(f)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment