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 80
2. Convert Images to WebP
Convert all images to the WebP format:
optimize-images ./images --output ./optimized --format webp
3. Resize Images
Resize images to fit within a maximum of 800x600 pixels:
optimize-images ./images --output ./optimized --width 800 --height 600
4. Generate an Optimization Report
Generate a report showing original and optimized file sizes:
optimize-images ./images --output ./optimized --quality 75 --report
5. 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.jpeg
Output 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
--watch
option 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
--log
option. - 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!