Skip to content

Instantly share code, notes, and snippets.

@easierbycode
Created April 15, 2025 12:44
Show Gist options
  • Save easierbycode/86e1ac61b5fe6ddf03d8b3155cfba96f to your computer and use it in GitHub Desktop.
Save easierbycode/86e1ac61b5fe6ddf03d8b3155cfba96f to your computer and use it in GitHub Desktop.
trump_pixel_art_animation

Trump 16-bit Pixel Art Animation

This project contains Python scripts to generate a simple 16-bit style pixel art sprite of Trump, create an idle animation, and export a sprite sheet for use in Phaser 4.

Files

  • create_pixel_art_frames.py: Generates pixel art frames and exports PNGs and an animated GIF.
  • gif_to_spritesheet.py: Converts the animated GIF into a horizontal sprite sheet PNG.
  • trump_idle_animation.gif: Generated animated GIF (after running create_pixel_art_frames.py).
  • trump_idle_spritesheet.png: Generated sprite sheet (after running gif_to_spritesheet.py).

Usage

  1. Install Pillow:
pip install pillow
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")
python create_pixel_art_frames.py
python gif_to_spritesheet.py
trump_pixel_art_animation/
├── create_pixel_art_frames.py
├── create_idle_animation.py
├── gif_to_spritesheet.py
├── README.md
---
### How to create the zip
1. Create a folder named `trump_pixel_art_animation`.
2. Inside it, create the three files above with the exact content.
3. Run the Python scripts in order.
4. Zip the folder using your OS tools or command line:
```bash
zip -r trump_pixel_art_animation.zip trump_pixel_art_animation/
this.load.spritesheet('trump_idle', 'path/to/trump_idle_spritesheet.png', {
frameWidth: 256,
frameHeight: 256
});
this.anims.create({
key: 'idle',
frames: this.anims.generateFrameNumbers('trump_idle', { start: 0, end: 2 }),
frameRate: 6,
repeat: -1
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment