Member-only story
Watermarking in Python
2 min readSep 4, 2024
from PIL import Image, ImageDraw, ImageFont
def add_watermark(input_image_path, output_image_path, watermark_text):
original = Image.open(input_image_path).convert("RGBA")
txt = Image.new("RGBA", original.size, (255, 255, 255, 0))
font = ImageFont.truetype("arial.ttf", 40)
draw = ImageDraw.Draw(txt)
width, height = original.size
text_bbox = draw.textbbox((0, 0), watermark_text, font=font)
text_width = text_bbox[2] - text_bbox[0]
text_height = text_bbox[3] - text_bbox[1]
position = (width - text_width - 10, height - text_height - 10)
draw.text(position, watermark_text, fill=(255, 255, 255, 128), font=font)
watermarked = Image.alpha_composite(original, txt)
watermarked.show()
watermarked.convert("RGB").save(output_image_path, "JPEG")
add_watermark("cl.jpg", "cloutput.jpg", "clcoding.com")
Here’s a brief explanation of the code:
- Imports:
Image
,ImageDraw
, andImageFont
are imported from thePIL
library to handle image processing tasks. - Function Definition:
add_watermark
function is defined to add a watermark to an image. - Load Image: The original image is opened and converted to “RGBA” mode, which includes an alpha channel for transparency.
- Create Text Layer: A new transparent image (
txt
) is created with the same size as the original, serving as the…