Files
novafarma/tools/remove_checkerboard.py
2025-12-14 12:21:17 +01:00

53 lines
1.8 KiB
Python

from PIL import Image
def remove_checkerboard(input_path, output_path):
"""Remove gray/white checkerboard pattern and make background transparent"""
img = Image.open(input_path).convert('RGBA')
pixels = img.load()
width, height = img.size
print(f"Image size: {width}x{height}")
modified = 0
for y in range(height):
for x in range(width):
r, g, b, a = pixels[x, y]
# Skip if already transparent
if a == 0:
continue
# Check if pixel is grayscale (R ≈ G ≈ B)
is_grayscale = abs(r - g) < 20 and abs(g - b) < 20 and abs(r - b) < 20
brightness = (r + g + b) / 3
should_remove = False
# Remove checkerboard grays (common values: 204, 153, 192, 128, 255)
if is_grayscale and brightness > 100:
should_remove = True
# Remove very bright pixels
if brightness > 200:
should_remove = True
# Remove pure white
if r > 240 and g > 240 and b > 240:
should_remove = True
if should_remove:
pixels[x, y] = (r, g, b, 0) # Make transparent
modified += 1
img.save(output_path, 'PNG')
print(f"✅ Processed! Removed {modified} background pixels")
print(f"📁 Saved to: {output_path}")
if __name__ == "__main__":
# Use the ORIGINAL image you uploaded
input_file = r"C:\Users\hipod\.gemini\antigravity\brain\70050185-4972-4413-9765-559b6f2ad1cc\uploaded_image_1765710182006.jpg"
output_file = r"c:\novafarma\assets\sprites\player_walking_clean.png"
remove_checkerboard(input_file, output_file)