from PIL import Image
import os

def remove_background(input_path, output_path):
    print(f"Processing {input_path}...")
    try:
        img = Image.open(input_path).convert("RGBA")
        datas = img.getdata()

        newData = []
        for item in datas:
            # Checkerboard colors are usually White (255,255,255) and Light Grey (e.g. 204,204,204 or similar)
            # We filter out anything very bright/neutral
            r, g, b, a = item
            
            # Check for white/near white
            if r > 240 and g > 240 and b > 240:
                newData.append((255, 255, 255, 0)) # Transparent
            # Check for grey checkerboard (often around 204-240 range)
            elif r > 190 and g > 190 and b > 190 and abs(r-g) < 10 and abs(r-b) < 10:
                 newData.append((255, 255, 255, 0)) # Transparent
            else:
                newData.append(item)

        img.putdata(newData)
        
        # Save
        img.save(output_path, "PNG")
        print(f"Saved to {output_path}")
        
    except Exception as e:
        print(f"Error: {e}")

# Process Player
remove_background("assets/sprites/raw_player.jpg", "assets/sprites/player_walk.png")

# Process Zombie
remove_background("assets/sprites/raw_zombie.jpg", "assets/sprites/zombie_walk.png")
