Optimize images for size while maintaining quality.
Optimize a single image:
./img_optimize.sh photo.jpgOptimize all images in a directory:
./img_optimize.sh vacation-photos/Optimize with custom quality:
./img_optimize.sh --quality 90 cat-meme.pngMix files and directories:
./img_optimize.sh logo.png banner.jpg downloads/% ./img_optimize.sh --quality 85 sample-images/
Optimizing images with quality: 85
Processing directory: sample-images/
✓ sample-images/beach-sunset.jpg
2MB → 456KB (saved 1MB, 76%)
✓ sample-images/cat-portrait.png
3MB → 892KB (saved 2MB, 70%)
✓ sample-images/food-photo.webp
1MB → 312KB (saved 780KB, 74%)
Summary:
Processed: 3 images
Total size: 6MB → 1MB
Total saved: 4MB (73%)
The script uses ImageMagick to optimize images with lossy compression:
- Strips metadata (EXIF data, thumbnails, etc.) to reduce file size
- Applies quality compression (default: 85%)
- Creates new files with
.optimizedsuffix (originals are preserved) - Supports JPEG, PNG, WebP, and GIF formats
Requires ImageMagick:
# macOS
brew install imagemagick
# Linux (Debian/Ubuntu)
sudo apt-get install imagemagick
# Linux (Fedora/RHEL)
sudo dnf install ImageMagick