A modern, Photoshop-like web application for applying stunning effects to images. Built with React, TypeScript, and Canvas API, featuring a comprehensive suite of retro, gaming, and artistic effects.
Live Demo - Try the app online!
- VHS Glitch: Classic VHS tape distortion with scanlines, noise, and color shift
- 90s Internet: Retro web aesthetics with pixelation and dithering
- NES Classic: 8-bit Nintendo nostalgia with pixelated graphics
- Sega Genesis: 16-bit Sega blast processing with enhanced saturation
- Super Nintendo: 16-bit Nintendo smoothness with color boost
- Sega CD: FMV compression artifacts and video processing effects
- Shadowrun: Cyberpunk-inspired retro gaming aesthetic
- Glitch: Digital glitch effects with RGB channel separation and random artifacts
- Lo-Fi: Low fidelity aesthetic with reduced saturation and grain
- Cyberpunk: Neon cyberpunk style with high contrast and blue tint
- Film Grain: Classic film grain texture and noise
- Sepia: Warm vintage sepia tone conversion
- Vintage: Aged photograph aesthetic with color fading
- Neon: Glowing neon light effects
- Color Pop: Vibrant color enhancement
- Black & White: Classic monochrome conversion
- Polaroid: Instant film camera aesthetic
- Cross Process: Alternative film development look
- Emboss: 3D embossed texture effect
- Edge Detect: Outline and edge detection
- Vignette: Darkened corners for dramatic focus
- Blur: Gaussian blur for depth of field
- Sharpen: Image sharpening and detail enhancement
- Infrared: Infrared photography simulation
- Thermal: Thermal imaging color mapping
- Color Adjustments: Hue, saturation, and brightness controls
- Dither: Ordered and Floyd-Steinberg dithering
- Upscaling: AI-enhanced image upscaling with multiple algorithms
- Layer System: Photoshop-style layer management with opacity and blend modes
- History Panel: Complete edit history with undo/redo functionality
- Real-time Preview: Live effect preview before applying
- Export Options: High-quality image export with custom settings
- Dark/Light Theme: Toggle between themes
- Keyboard Shortcuts: Professional-grade keyboard shortcuts
- Zoom Controls: Multiple zoom levels and fit-to-screen options
- Tool Panel: Selection, move, crop, rotate, and drawing tools
- Touch Support: Full touch and gesture support for mobile devices
- Responsive Design: Optimized interface for phones and tablets
- Mobile Navigation: Bottom navigation bar with easy access to all features
- Touch Canvas: Pinch-to-zoom, pan, and touch-based tool interactions
- Mobile Preview: Large, full-width effect previews optimized for mobile screens
- Adaptive UI: Interface elements automatically adapt to screen size
- No Scrollbars: Clean, scroll-free mobile experience
- Smart Apply: Apply effects and automatically return to canvas on mobile
- Node.js (v16 or higher)
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd neo-dither- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:5173
- Upload an Image: Click the upload button or drag and drop an image file
- Select an Effect: Choose from the categorized effects in the right panel
- Adjust Parameters: Use the sliders to fine-tune effect parameters
- Preview: See real-time preview of your changes
- Apply: Apply the effect to create a new layer
- Export: Download your final image in high quality
- Create Layers: Each effect creates a new layer
- Opacity Control: Adjust layer transparency
- Blend Modes: Choose from various blend modes (Normal, Multiply, Screen, etc.)
- Layer Visibility: Toggle layers on/off
- Layer Locking: Prevent accidental edits
- Single Touch: Pan around the canvas
- Pinch: Zoom in/out on the canvas
- Double Tap: Reset zoom to fit screen
- Effect Preview: Zoom controls (+/-/Reset) for detailed effect inspection
- Edit: Returns to the main canvas view
- Effects: Access all image effects and parameters
- Layers: Manage layers, opacity, and blend modes
- History: View and restore previous edit states
- Save As: Export your final image (disabled until image is loaded)
- Upload an image using the upload button in the toolbar
- Navigate to Effects to choose and configure effects
- Use the large preview to see your changes
- Zoom in on the preview to inspect details using the +/- controls
- Double-tap the preview to quickly reset zoom
- Click Apply to apply the effect and return to canvas
- Switch to Layers to manage multiple effects
- Use Save As to export your finished image
V- Selection toolH- Move toolC- Crop toolR- Rotate toolZ- Zoom toolF- Fit to screen1- Actual sizeB- Brush toolE- Eraser toolT- Text toolG- Fill tool
- React 18: Modern React with hooks and functional components
- TypeScript: Type-safe JavaScript development
- Vite: Fast build tool and development server
- Tailwind CSS: Utility-first CSS framework
- Canvas API: Real-time image processing and manipulation
- Lucide React: Beautiful icon library
- Component-Based: Modular React components for maintainability
- Canvas Processing: Real-time image effects using Canvas API
- State Management: React hooks for efficient state management
- Effect System: Custom Canvas-based image filters and transformations
- Layer Compositing: Advanced layer blending and compositing
- Responsive Design: Mobile-first approach with adaptive layouts
- Touch API Integration: Native touch and gesture event handling
- Progressive Enhancement: Desktop features enhanced, mobile optimized
neo-dither/
βββ components/ # React components
β βββ Canvas.tsx # Main canvas component with touch support
β βββ EffectsPanel.tsx # Effects selection and parameters
β βββ LayerPanel.tsx # Layer management
β βββ HistoryPanel.tsx # Edit history
β βββ ToolPanel.tsx # Drawing and editing tools
β βββ ExportDialog.tsx # Export functionality
β βββ MobileBottomNav.tsx # Mobile navigation bar
β βββ Wallpaper.tsx # Background wallpaper
βββ src/
β βββ hooks/
β β βββ useIsMobile.ts # Mobile detection hook
β βββ utils/
β β βββ effects.ts # All image processing effects
β βββ App.tsx # Main application component
β βββ main.tsx # Application entry point
β βββ index.css # Global styles including mobile optimizations
βββ public/ # Static assets
βββ package.json # Dependencies and scripts
npm run dev: Start development servernpm run build: Build for productionnpm run preview: Preview production build
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
- Inspired by classic image editing software like Photoshop and GIMP
- Built with modern web technologies for optimal performance
- Designed for ease of use while providing professional-grade features
- Retro gaming effects inspired by classic console aesthetics