A web application that converts GIF animations into ASCII art. Watch your favorite GIFs transform into text-based animations that preserve the motion and character of the original.
- GIF to ASCII Conversion: Upload any GIF and convert it to ASCII art in real-time
- Customizable Settings:
- Adjust width and height of the ASCII output
- Change font size for better viewing
- Control playback speed (FPS)
- Invert colors
- Customize the ASCII character set
- Live Preview: Watch your ASCII animation as it plays
- Community Gallery: Share your creations with others and browse the community's submissions
- Code Snippet: Get the code to embed your ASCII art in other projects
- Frontend: Next.js 15, React 19, TypeScript
- Styling: Tailwind CSS
- State Management: Zustand
- Animation Processing: gifuct-js for GIF parsing and frame extraction
- Form Handling: React Hook Form with Zod validation
- UI Components: Custom components with Radix UI primitives
- Node.js 18+
- pnpm (recommended) or npm
-
Clone the repository:
git clone https://github.com/yourusername/ascii-gif-converter.git cd ascii-gif-converter
-
Install dependencies:
pnpm install
-
Set up environment variables: Create a
.env
file in the root directory with necessary configurations. -
Start the development server:
pnpm dev
-
Open http://localhost:3000 in your browser to see the application.
- Upload a GIF file using the file input
- The application processes each frame of the GIF using the
gifuct-js
library - Each frame is rendered to a canvas and converted to ASCII characters
- The brightness of each pixel determines which ASCII character is used
- The frames are displayed in sequence to create an animated ASCII art
- ASCII Character Set: Change the characters used for rendering (default:
.:\
'",;><)(}{[]_|\/-^~=?+*%$#`) - Dimensions: Adjust width and height sliders to change resolution
- Font Size: Use the slider to make the ASCII art larger or smaller
- Playback Speed: Control the frames per second (FPS)
- Color Inversion: Toggle between light characters on dark background or vice versa
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.