Files
ascreamfromthedark-gb/scripts/process_cover.py
T

44 lines
1.2 KiB
Python

from PIL import Image
# Open the new cover image
img = Image.open('bg.png')
# Convert to grayscale first to get raw intensity values
img_gray = img.convert('L')
# Create a new indexed image with the exact Game Boy palette mapping
# 0 = White, 1 = Light Gray, 2 = Dark Gray, 3 = Black
final_img = Image.new('P', img_gray.size)
# Set the palette
palette = [
255, 255, 255, # 0: White
170, 170, 170, # 1: Light Gray
85, 85, 85, # 2: Dark Gray
0, 0, 0 # 3: Black
]
palette += [0] * (256 * 3 - len(palette))
final_img.putpalette(palette)
# Map the grayscale pixels to palette indices (0-3)
# Darker pixels get higher indices (closer to 3/Black), lighter get lower indices (closer to 0/White)
raw_pixels = list(img_gray.getdata())
mapped_pixels = []
for p in raw_pixels:
if p > 200:
mapped_pixels.append(0) # White
elif p > 120:
mapped_pixels.append(1) # Light Gray
elif p > 55:
mapped_pixels.append(2) # Dark Gray
else:
mapped_pixels.append(3) # Black
final_img.putdata(mapped_pixels)
# Save the resulting image
final_img.save('title_bg.png')
print("title_bg.png created successfully with correct color indexing.")