author:jm-jsjkxyjs02-xzh-1501
Compress images with configurable quality and format conversion. Supports PNG, JPG, and WebP output. Each output image is verified after compression to ensure it opens correctly.
# Compress a single image (default quality 85, keep original format)
python scripts/compress_image.py input.jpg
# Compress with specific quality and convert to WebP
python scripts/compress_image.py input.png -q 70 -f webp -o compressed/
# Batch compress all images in a folder
python scripts/compress_image.py images/ -q 80 -f jpg -o output/
| Argument | Short | Default | Description |
|---|---|---|---|
| ---------- | ------- | --------- | ------------- |
input | — | required | Input image file or directory |
--quality | -q | 85 | Compression quality (1-100) |
--format | -f | same as input | Output format: png, jpg, webp |
--output | -o | ./compressed/ | Output directory |
| Quality | Use Case |
|---|---|
| --------- | ---------- |
| 90-100 | High quality, archival |
| 75-89 | Default (85), good balance |
| 50-74 | Web use, smaller files |
| 1-49 | Thumbnails, previews |
| Format | Read | Write | Notes |
|---|---|---|---|
| -------- | ------ | ------- | ------- |
| PNG | ✅ | ✅ | Lossless support |
| JPG/JPEG | ✅ | ✅ | Best for photos |
| WebP | ✅ | ✅ | Best web format |
| BMP | ✅ | ❌ | Convert to other formats |
| GIF | ✅ | ❌ | Convert to other formats |
See scripts/compress_image.py for the compression script. It uses Pillow for all image operations. Output files are validated by re-opening after write.
共 1 个版本