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 โญ!