Image Compressor
Compress JPG, PNG, WebP, and GIF images with bounded server-side GD processing. Preview the result, then download it before the temporary file expires.
What this compressor measures and what it does not promise
Image Compressor is the deliberate exception to Z Tools' browser-local model. The selected file is uploaded to PHP, validated against size/dimension limits, decoded and re-encoded with the host's GD codecs, then exposed through a short-lived session-bound download flow. Temporary files are cleaned within 5 minutes.
Current deterministic fixture run
The committed run used PHP 8.3.6 with GD plus JPEG, PNG, and WebP support on a 1200×800 generated gradient/noise fixture.
| Setting | Baseline | Output | Saved |
|---|---|---|---|
| JPEG quality 75 | 1,606,187 B | 152,036 B | 90.53% |
| PNG compression 9 | 2,885,501 B | 16,118 B | 99.44% |
| WebP quality 75 | 295,832 B | 116,624 B | 60.58% |
These are synthetic-fixture results, not universal savings claims. Z Tools Lab publishes every tested setting and the codec environment.
Resource and privacy boundaries
- Maximum upload: 10 MiB, 12.5 megapixels, and 20,000 pixels on either edge. Both file bytes and decoded pixel dimensions matter to server memory use.
- Temporary storage: filenames are randomized and session-bound; download requests use an expiring HMAC-protected flow rather than serving the upload directory directly.
- Format behavior: JPEG/WebP quality controls are lossy encoder settings, while PNG uses its own compression level. A numeric quality value is not a perceptual percentage.
- Already-optimized input: re-encoding can produce a larger file. The tool keeps the original when the generated result is not smaller.
- No public stress test: benchmark scripts remain server-blocked and are run offline so visitors cannot turn image testing into a CPU/memory endpoint.
For the full workflow, limitations, and why representative real-photo fixtures should be added before making broad compression claims, read Image Compression Decisions.