Refactoring: Project structure, sprite stairs & fog masks rendering fix
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
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.")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user