|
from PIL import Image |
|
|
|
frames = [ |
|
# Frame 1: Normal |
|
[ |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHSSSSSSHHHH", |
|
"HHHHHSSSEEESSHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHWWTTTWWHHHH", |
|
"HHHHHWWTTTWWHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
], |
|
# Frame 2: Eyes closed |
|
[ |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHSSSSSSHHHH", |
|
"HHHHHSSSSSSSSHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHWWTTTWWHHHH", |
|
"HHHHHWWTTTWWHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
], |
|
# Frame 3: Bob down by 1 pixel |
|
[ |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHHHHHHHHHHH", |
|
"HHHHHHSSSSSSHHHH", |
|
"HHHHHSSSEEESSHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHSSSSSSSHHHH", |
|
"HHHHHWWTTTWWHHHH", |
|
"HHHHHWWTTTWWHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
"HHHHHUUUUUUHHHHH", |
|
], |
|
] |
|
|
|
color_map = { |
|
"H": (255, 217, 102, 255), # Blonde Hair |
|
"S": (250, 215, 181, 255), # Skin tone |
|
"E": (0, 0, 0, 255), # Eyes (black) |
|
"T": (211, 47, 47, 255), # Tie (red) |
|
"U": (43, 43, 43, 255), # Suit (dark gray) |
|
"W": (255, 255, 255, 255), # White shirt |
|
" ": (0, 0, 0, 0), # Transparent |
|
} |
|
|
|
frame_width, frame_height = 16, 16 |
|
scale = 16 |
|
|
|
images = [] |
|
|
|
for i, frame in enumerate(frames): |
|
img = Image.new("RGBA", (frame_width, frame_height)) |
|
for y, row in enumerate(frame): |
|
for x, char in enumerate(row): |
|
color = color_map.get(char, (0, 0, 0, 0)) |
|
img.putpixel((x, y), color) |
|
img = img.resize((frame_width * scale, frame_height * scale), Image.NEAREST) |
|
filename = f"trump_idle_frame_{i+1}.png" |
|
img.save(filename) |
|
print(f"Saved {filename}") |
|
images.append(img) |
|
|
|
# Save as GIF |
|
images[0].save( |
|
"trump_idle_animation.gif", |
|
save_all=True, |
|
append_images=images[1:], |
|
duration=400, |
|
loop=0, |
|
) |
|
print("Saved trump_idle_animation.gif") |