-
-
Save cwfoo/8a3475446c611d411be0474bebedd0b4 to your computer and use it in GitHub Desktop.
How to apply a semi-transparent watermark to an image using Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from PIL import Image, ImageDraw | |
def main(): | |
# Open the original image | |
main = Image.open("12voltm.jpg") | |
# 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. | |
waterdraw.text((10, 10), "The Image Project") | |
# 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("12volt-watermarked.jpg", "JPEG") | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment