from PIL import Image, ImageOps, ImageChops
import os

def process_clothing_image(image_path):
    """
    Processes a clothing image:
    1. Removes background (simplified version without ML if not available).
    2. Crops to the garment boundaries.
    3. Converts background to white.
    """
    try:
        img = Image.open(image_path).convert("RGBA")
        
        # 1. Background removal / White background conversion
        # Since we don't have rembg, we'll try a simple approach:
        # If the background is already somewhat light, we can treat it as background.
        # This is a fallback for true ML-based background removal.
        
        datas = img.getdata()
        
        new_data = []
        # Simple heuristic: pixels that are very bright or very dark (if it's a studio shot)
        # For more precision, we'd need a real segmentation model.
        for item in datas:
            # If the pixel is very white, make it transparent for cropping logic
            if item[0] > 240 and item[1] > 240 and item[2] > 240:
                new_data.append((255, 255, 255, 0))
            else:
                new_data.append(item)
        
        img.putdata(new_data)
        
        # 2. Automatic Cropping
        # Get the bounding box of non-transparent areas
        bbox = img.getbbox()
        if bbox:
            img = img.crop(bbox)
        
        # 3. Add White Background
        background = Image.new("RGB", img.size, (255, 255, 255))
        background.paste(img, mask=img.split()[3]) # 3 is the alpha channel
        
        # Save back to the same path or a new one
        background.save(image_path, "JPEG", quality=95)
        return True
    except Exception as e:
        print(f"Error processing image {image_path}: {e}")
        return False
