from PIL import Image
def create_watermark(main, final_image_path, watermark):
mark = Image.open(watermark)
mark = mark.rotate(0, expand=1)
mark.putalpha(20)
mark_width, mark_height = mark.size
main_width, main_height = main.size
aspect_ratio = mark_width / mark_height
new_mark_width = main_width * 0.1
mark.thumbnail((new_mark_width, new_mark_width / aspect_ratio), Image.Resampling.LANCZOS)
tmp_img = Image.new('RGBA', main.size)
for i in range(0, tmp_img.size[0], mark.size[0]):
for j in range(0, tmp_img.size[1], mark.size[1]):
main.paste(mark, (i, j), mark)
main.save(final_image_path, dpi=(300, 300))