Imageresizer
A simple tool to resize images in different dimensions and compare file size
Install / Use
/learn @hoichoi-opensource/ImageresizerREADME
Image Resizer

A high-performance Next.js application to upload images, resize them to specified dimensions or aspect ratios, and export them in both webp and avif formats. Built with TypeScript, React, and Sharp for optimal performance and type safety.
Features
- 🚀 Fast & Efficient: Parallel image processing with Sharp
- 🎨 Multiple Formats: Export in WebP and AVIF formats
- 📐 Preset Dimensions: 6 predefined sizes (Ultra-wide, Wide, Portrait, Fixed, Square, Vertical)
- 🎯 Customizable: Select specific dimensions and adjust quality
- 🔒 Secure: Input validation, rate limiting, and security headers
- 📱 Responsive: Works on all devices
- 🎭 Preview: See your image before uploading
- 📊 Progress Tracking: Real-time upload progress
- ⚡ Type Safe: Built with TypeScript for reliability
What's New
Production-Ready Improvements
- ✅ TypeScript: Fully typed with no
anytypes - ✅ Security: Rate limiting, CORS, input validation
- ✅ Performance: Parallel processing, optimized builds
- ✅ UX: Progress indicators, error messages, image preview
- ✅ Features: Quality control, dimension selection
- ✅ SEO: Meta tags and robots.txt
Prerequisites
- Node.js (v18+)
Setup & Installation
- Clone the repository:
git clone https://github.com/hoichoi-opensource/imageresizer.git
cd imageresizer
- Install the required packages:
npm install
Running the Application
Start the development server:
npm run dev
# or
yarn dev
Visit http://localhost:3000 in your browser to access the application.
For production build:
npm run build
npm start
# or
yarn build
yarn start
Usage
- Select an image: Click the upload area or drag & drop an image
- Configure settings (optional):
- Adjust quality (1-100%)
- Select specific dimensions
- Upload: Click "Upload and Resize"
- Download: Click download buttons for each resized image
Supported Formats
- Input: JPEG, PNG, WebP, AVIF, TIFF, BMP, SVG
- Output: WebP and AVIF
- Max file size: 50MB
Available Dimensions
- Ultra Wide (2560px @ 32:9)
- Wide (1280px @ 16:9)
- Portrait (1098px @ 3:4)
- Fixed (600×338px)
- Square (1080px @ 1:1)
- Vertical (1080px @ 9:16)
Contributing to the Project
We welcome contributions from everyone who is interested in helping to improve this project! Whether it's fixing bugs, adding new features, improving documentation, or spreading the word, your help is appreciated.
Here are some ways you can contribute:
- Reporting bugs: If you find a bug, please report it by opening a new issue on GitHub.
- Suggesting enhancements: Have an idea to make this project better? Share it with us by opening a new issue for discussion.
- Submitting changes: Want to submit a fix or a feature? Great! Fork the repository, make your changes, and submit a pull request.
Getting Started
- Fork the repository: Click the 'Fork' button at the top right of this page to create your copy of the repository.
- Clone your fork:
- Create your feature branch:
- Make your changes: Implement the changes or improvements you propose.
- Commit your changes:
- Push to the branch:
- Submit a pull request: Go to your fork on GitHub and click the 'Pull Request' button to send your changes review.
Please see our CONTRIBUTING.md for guidelines on how to contribute to this project.
Checkout the current issues as well to start .
Related Skills
healthcheck
347.0kHost security hardening and risk-tolerance configuration for OpenClaw deployments
imsg
347.0kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
xurl
347.0kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
