from PIL import Image, ImageOps import os from pathlib import Path# main.py import logging import tempfile logger = logging.getLogger(__name__) logger.info("Logger from watermark") def create_watermark_image(image_path, filigrane_path="logo-lescreationsdemissbleue-fond-transparent.png"): #image = Image.open(image_path).convert("RGBA") image = ImageOps.exif_transpose(Image.open(image_path)).convert("RGBA") filigrane = Image.open(filigrane_path).convert("RGBA") temp_dir = tempfile.gettempdir() # Resize the watermak (ex: 25% of widht from principal image) """ratio = 0.25 """ ratio = 0.15 # instead of 0.25 new_width = int(image.width * ratio) new_height = int(filigrane.height * (new_width / filigrane.width)) filigrane = filigrane.resize((new_width, new_height), Image.Resampling.LANCZOS) # Change the color in grey and handle the transparency """filigrane = filigrane.convert("L").convert("RGBA") # Gris alpha = filigrane.getchannel("A").point(lambda p: int(p * 0.3)) # ~30% opacitĂ© filigrane.putalpha(alpha)""" x = image.width - filigrane.width - 30 # 10px from right edge y = image.height - filigrane.height - 30 # 10px from bottom edge # Paste watermark (with alpha mask) image.paste(filigrane, (x, y), filigrane) temp_image_path = os.path.join(temp_dir, image_path) # Save the result #output_path = image_path.rsplit('.', 1) #output_path = f"{output_path[0]}.jpg" output_path = os.path.basename(temp_image_path) try: if not os.path.exists(output_path): image.convert("RGB").save(output_path, "JPEG") except Exception as e: logger.exception(f"đŸ”„ Image avec filigrane existe dĂ©jĂ  : {e} - {Path(output_path).name}") #print(f"outpath = {output_path}") return output_path #print(f"✅ Image enregistrĂ©e : {output_path}")