from PIL import Image import numpy as np def remove_white_background(input_path, output_path, threshold=240): img = Image.open(input_path).convert("RGBA") data = np.array(img) # RGB values r, g, b, a = data.T # Define white areas (pixels > threshold) white_areas = (r > threshold) & (g > threshold) & (b > threshold) # Set alpha to 0 for white areas data[..., 3][white_areas.T] = 0 # Create new image new_img = Image.fromarray(data) new_img.save(output_path) print(f"Saved transparent image to {output_path}") if __name__ == "__main__": # Use relative paths so it works in WSL/Linux too remove_white_background("cup.png", "cup_transparent.png")