Crop images to any shape - Free, open-source, and privacy-first
- 16+ Preset Shapes - Circle, heart, star, hexagon, triangle, and many more
- Custom Shape Editor - Create your own shapes using:
- Shape Generator (polygons & stars with customizable sides/points)
- SVG Path Editor (paste any SVG path)
- Freehand Drawing tool
- Privacy-First - All processing happens in your browser. No uploads, no servers
- High-Quality Export - Download as transparent PNG in 256px, 512px, 1024px, or 2048px
- No Watermarks - 100% free with no hidden limitations
- No Sign-up Required - Just open and use
- Dark Mode - Automatic theme detection
- Mobile Friendly - Works on all devices
- Node.js 18+
- npm or yarn or pnpm
- Clone the repository:
git clone https://github.com/DevMubarak1/anyshape.git
cd anyshape- Install dependencies:
npm install
# or
yarn install
# or
pnpm install- Run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev- Open http://localhost:3000 in your browser
- Framework: Next.js 16 with App Router
- Styling: Tailwind CSS 4
- Language: TypeScript
anyshape/
├── app/
│ ├── components/
│ │ ├── shapes.ts # Shape definitions and generators
│ │ ├── ImageCropper.tsx # Main cropping component
│ │ ├── ShapeSelector.tsx # Shape selection grid
│ │ ├── CustomShapeEditor.tsx # Custom shape creation modal
│ │ ├── Header.tsx # Header component
│ │ └── Footer.tsx # Footer component
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Main page
├── public/ # Static assets
├── package.json
└── README.md
- Choose a Shape - Select from preset shapes or create your own
- Upload an Image - Drag & drop or click to browse
- Adjust Position - Drag to reposition, scroll to zoom
- Download - Export as transparent PNG
- Click "+ Custom Shape" button
- Choose "Generator" mode
- Select polygon or star type
- Adjust sides/points and other parameters
- Click "Use This Shape"
- Click "+ Custom Shape" button
- Choose "SVG Path" mode
- Paste your SVG path data (coordinates should be 0-100)
- Click "Use This Shape"
Example SVG path for a diamond:
M 50 0 L 100 50 L 50 100 L 0 50 Z
- Click "+ Custom Shape" button
- Choose "Draw" mode
- Click and drag to draw your shape
- The shape will automatically close
- Click "Use This Shape"
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create your 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
- Add more preset shapes
- Color overlay options
- Image filters (blur, brightness, etc.)
This project is open source and available under the MIT License.
If you find this project useful, please consider giving it a star!
Made with ❤️ by DevMubarak