optimize-images-cli v1.0.3
Optimize Images CLI
Optimize Images CLI is a powerful and flexible command-line tool for compressing, resizing, and converting images. It supports modern image formats like WebP and AVIF, making it easy to optimize images for web and app development.
š Table of Contents
- Features
- Installation
- Usage
- Examples
- Directory Structure
- Requirements
- Tips
- License
- Contributing
- Feedback and Support
š Features
- Convert images to formats like JPEG, PNG, WebP, and AVIF.
- Resize images with custom dimensions while maintaining aspect ratio.
- Recursive optimization for nested directories.
- Watch mode for real-time image optimization.
- Generate detailed optimization reports.
š ļø Installation
You can install the CLI globally using npm:
npm install -g optimize-images-cliš§ Usage
Run the CLI with the following basic syntax:
optimize-images <input> [options]Options
| Option | Description | Default |
|---|---|---|
--output | Output directory for optimized images | ./optimized |
--quality <number> | Image quality (1-100) | 80 |
--format <type> | Convert images to a specific format (jpeg, png, webp, avif) | Preserves original |
--width <number> | Maximum width of images | No resizing |
--height <number> | Maximum height of images | No resizing |
--watch | Watch directory for changes and optimize dynamically | false |
--report | Generate a detailed optimization report | false |
š Examples
1. Basic Optimization
Optimize all images in the ./images directory and save them in ./optimized:
optimize-images ./images --output ./optimized --quality 802. Convert Images to WebP
Convert all images to the WebP format:
optimize-images ./images --output ./optimized --format webp3. Resize Images
Resize images to fit within a maximum of 800x600 pixels:
optimize-images ./images --output ./optimized --width 800 --height 6004. Generate an Optimization Report
Generate a report showing original and optimized file sizes:
optimize-images ./images --output ./optimized --quality 75 --report5. Watch Mode
Monitor a directory for changes and optimize images dynamically:
optimize-images ./images --output ./optimized --watchš² Directory Structure
The tool preserves the original directory structure in the output folder. For example:
Input Directory:
images/
āāā photo1.jpg
āāā photo2.png
āāā nested/
āāā photo3.jpegOutput Directory:
optimized/
āāā photo1.webp
āāā photo2.webp
āāā nested/
āāā photo3.webpš§° Requirements
- Node.js (v14.0.0 or higher)
- NPM (v7.0.0 or higher)
š” Tips
- Use the
--watchoption for real-time optimization during development. - Combine resizing (
--width,--height) with format conversion (--format) for maximum optimization.
ā ļø Troubleshooting
"Command not found"
If you encounter this error, make sure the CLI is installed globally:
npm install -g optimize-images-cliš License
This project is licensed under the MIT License.
š¤ Contributing
We welcome contributions! Please follow these steps:
1. Fork the repository.
2. Create a new branch (git checkout -b feature-name).
3. Commit your changes (git commit -m "Add feature").
4. Push to the branch (git push origin feature-name).
5. Open a pull request.
š Roadmap
Here are some planned features for future releases:
- Support for GIF and TIFF formats.
- Multi-threaded optimization for faster performance.
- Export logs to a file with
--logoption. - Config file support for default options (
optimize-images.config.json).
Feel free to suggest new features by opening an issue.
š¬ Feedback and Support
If you encounter any issues or have suggestions, feel free to open an issue on GitHub or contact at contact@gaurabchhetri.com.np.
š Security
If you find any security issues, please report them responsibly by contacting contact@gaurabchhetri.com.np. We will address them promptly.
ā¤ļø Support
If you like this project and want to support its development, consider:
- ā Starring this repository on GitHub.
- ā Buying me a coffee.
- š¬ Sharing this tool with your network.
Your support keeps this project alive and growing!