Transform emojis and images into beautiful pixel art with this powerful web-based converter. Create stunning animations, customize every detail, and export your creations as images or GIFs.
Core Feature: Professional animation and pixel art preview for WS2812 LED Matrix displays, with realistic LED rendering simulation.
Read this in other languages: 简体中文 | Français | Deutsch | Italiano | 日本語 | 한국어 | Español
- Emoji Support: Input emojis directly or browse from a comprehensive emoji library
- Image Import: Upload any image file for pixelation
- Auto-Fit Mode: Automatically adjust emoji scale to fit perfectly in the canvas
- Search & Filter: Quick emoji search with category navigation
- Keyframe Animation: Create smooth animations with multiple keyframes
- Tween Interpolation: Automatic generation of transition frames between keyframes
- Playback Controls: Play, pause, and adjust animation speed in real-time
- GIF Export: Export animations as animated GIF files
- Scale: Resize your artwork from 0% to 200%
- Position: Fine-tune X/Y offset for perfect alignment
- Rotation: Rotate in any direction (0-360°)
- Interactive Canvas: Direct manipulation with click & drag + Hold Shift to rotate
- Dual Render Modes:
- Ideal Mode: Simulates WS2812 with diffuser - each LED's light spreads evenly for professional display effect
- Bare Mode: Simulates bare WS2812 appearance - direct LED pixel points without diffusion, showing raw LED effect
- Flexible Canvas: Adjustable grid size (8x8 to 128x128 pixels)
- Pixel Styles: Choose from square, rounded, or circular pixels
- Color Quantization: Reduce color palette to 2-256 colors for retro aesthetics
- Sharpening Filters: Enhance edge definition with adjustable strength
- Background Removal: Intelligent background removal with tolerance control
- Selection Tools: Rectangular selection with fill, erase, copy & paste
- Layer System: Non-destructive editing workflow
- Undo Support: Revert color picking and background removal operations
- Multiple Units: Work in millimeters, inches, or grid units
- Size Presets: Quick presets for common display sizes
- Export Formats:
- PNG (with transparency)
- GIF (animated or static)
- Raw pixel data
- Frame Rendering: Visualize physical pixel layout with real-world dimensions
Built-in translations for 8 languages:
- 🇨🇳 简体中文 (Simplified Chinese)
- 🇺🇸 English
- 🇫🇷 Français (French)
- 🇩🇪 Deutsch (German)
- 🇮🇹 Italiano (Italian)
- 🇯🇵 日本語 (Japanese)
- 🇰🇷 한국어 (Korean)
- 🇪🇸 Español (Spanish)
Visit the live demo at: https://thomas-hiddenpeak.github.io/emoji2pixel
-
Clone the repository
git clone https://github.com/thomas-hiddenpeak/emoji2pixel.git cd emoji2pixel -
Serve locally
Using Python:
python -m http.server 8000
Or using Node.js:
npx http-server -p 8000
-
Open in browser
http://localhost:8000
No build process required! This is a pure static web application.
- Input: Enter an emoji or upload an image
- Transform: Adjust scale, position, and rotation to your liking
- Add Frame: Click the
+button to add to your animation - Customize: Tweak render settings, pixel style, and colors
- Export: Download as PNG or GIF
| Shortcut | Action |
|---|---|
Space |
Toggle animation playback |
Enter |
Add current view as keyframe |
Delete / Backspace |
Delete selected frame |
← / → |
Navigate between frames |
Esc |
Cancel selection/color picking |
Ctrl/Cmd + C |
Copy selection |
Ctrl/Cmd + V |
Paste selection |
- 🎯 Hold Shift while dragging on canvas to rotate instead of moving
- 🔍 Use Color Quantization (8-64 colors) for authentic retro pixel art
- ⚡ Enable Sharpening (30-50% strength) to enhance edge clarity
- 🎬 Set Tween Frames to 5-10 for smooth animations
- 📐 Use Frame Render Mode to visualize physical LED matrix layouts
- Pure Frontend: HTML5, CSS3, Vanilla JavaScript
- No Dependencies: Zero external libraries or frameworks
- Canvas API: High-performance pixel manipulation
- GIF.js: Client-side GIF encoding
- Responsive Design: Works on desktop and tablet devices
emoji2pixel/
├── index.html # Main HTML structure
├── app.js # Core application logic
├── styles.css # Styling and layout
├── locales/ # Internationalization
│ ├── index.json # Locale manifest
│ ├── en-US.json # English translations
│ ├── zh-CN.json # Chinese translations
│ └── ... # Other languages
└── scripts/ # Build utilities
└── generate_locales_index.py
- Create a new locale file in
locales/(e.g.,pt-BR.json) - Copy the structure from an existing locale file
- Translate all keys to your target language
- Add a
selfNamefield with a flag emoji - Run the locale index generator:
python scripts/generate_locales_index.py
The new language will automatically appear in the language selector!
Contributions are welcome! Here's how you can help:
- 🐛 Report bugs and issues
- 💡 Suggest new features
- 🌍 Add or improve translations
- 📝 Improve documentation
- 🎨 Submit pixel art showcases
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Emoji data sourced from Unicode standards
- Inspired by classic pixel art tools and LED matrix displays
- Built with ❤️ for the pixel art community
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with 🎨 and ⌨️
If you find this project useful, please consider giving it a ⭐!