super-img-compress
v1.0.1
Published
Node.js + Sharp image compression and format conversion tool with CLI and Web UI.
Readme
SuperImg
Node.js + Sharp image compression tool with both CLI and Web UI modes.
Features
- Shared Sharp core for CLI and Web processing.
- CLI supports one image or a whole folder.
- CLI recursively scans folders and keeps nested output paths.
- Quality compression, output format conversion, output directory selection.
- Preserve original output format when no target format is selected.
- Resize by width, height, or both.
- Preserve aspect ratio by default.
- Web UI supports drag-and-drop upload, folder upload, preview, quality/format/size controls, and result download.
- Web UI supports PNG/JPG compression and conversion to WebP.
- Web UI can preserve each image's original format instead of forcing one output format.
- Folder uploads are returned as a ZIP that preserves the original directory structure, with
-compressadded to the top-level folder name.
Install
npm installWeb UI
npm startOpen:
http://localhost:3000For a folder named photos, Web processing returns:
photos-compress.zip
└── photos-compress/
├── image-a.webp
└── nested/
└── image-b.webpCLI
Process a single image:
node src/cli.js -i ./photo.png -o ./dist -f webp -q 80 --width 1200Process a folder recursively:
node src/cli.js -i ./images -o ./dist -f webp -q 75 --width 1600Resize without preserving the original aspect ratio:
node src/cli.js -i ./images -o ./dist -f jpeg -q 82 --width 800 --height 600 --no-keep-aspectCLI Options
-i, --input <path> image file or image folder path
-o, --output <dir> output directory; omit to replace input files in place
-q, --quality <number> compression quality, 1-100
-f, --format <format> jpeg, png, webp
--width <px> resize width
--height <px> resize height
--no-keep-aspect force exact width/heightProject Structure
src/core/config.js shared parameter normalization and format helpers
src/core/processor.js shared Sharp processing logic
src/cli.js command-line entry
src/server.js Express server and image API
public/ Web UI
scripts/smoke-test.js basic end-to-end processing test