Small Utility Lab

LOCAL IMAGE COMPRESSION

Compress an image in your browser and download it.

Compress one JPEG, PNG, or WebP image in your browser. Choose output quality, compare file sizes, and download without uploading the image.

JPEG, PNG, or WebP · up to 20 MiB and 40 megapixels · one image at a time

PNG is lossless; its quality setting is not used.

Choose an image. Processing stays in this browser tab.

Compress an image in your browser

Choose one JPEG, PNG, or WebP file, select an output format and set the quality for JPEG or WebP, then compress and download the result. The original pixel dimensions are kept. The browser decodes the selected file into an image bitmap, draws it on a canvas, and encodes a new file. The selected image is not uploaded.

JPEG has no transparency, so transparent areas become white when converting to JPEG. PNG uses lossless encoding and ignores the quality slider; an output PNG may be larger than the input. Compare the reported file sizes before using the result. Canvas re-encoding can discard source metadata and exports at 96 dpi; check the downloaded image if color profiles, camera data, or print metadata matter. This tool does not resize images, batch process, or preserve metadata. Inputs are limited to 20 MiB and 40 megapixels to reduce browser memory use.

How the size change is calculated

The percentage uses the original and encoded file sizes in bytes: (original bytes − output bytes) ÷ original bytes × 100. For an illustrative calculation, 1 MiB (1,048,576 bytes) becoming 768 KiB (786,432 bytes) is 25% smaller. The displayed sizes are rounded for readability; the percentage is calculated from the byte counts.

Page content updated November 5, 2026. Browser method checked November 5, 2026.

Good to know

Does compression always make the file smaller?

No. PNG output, a high quality setting, or a source that is already optimized can produce a larger file. Compare the original and output sizes shown before downloading.

How is the percentage reduction calculated?

It is (original bytes minus output bytes) divided by original bytes, multiplied by 100. For example, 1 MiB (1,048,576 bytes) to 768 KiB (786,432 bytes) is a 25% reduction. The displayed file sizes are rounded; the calculation uses byte counts.

What does the quality slider change?

For JPEG and WebP, it requests a lossy encoder quality from 10% to 100%. Lower values usually make smaller files with more visible image changes. Browser encoders can produce different results. PNG is lossless and ignores this slider.

Will this keep transparent pixels?

PNG and WebP can keep transparency when supported by the browser. JPEG cannot; transparent pixels are filled with white before encoding.

Are EXIF and other metadata preserved?

Do not rely on metadata being preserved. The canvas re-encodes pixels into a new file, and browser output does not retain the source file's full metadata. Check the result if metadata matters.

Are my images uploaded or saved?

No. Decoding, canvas encoding, and download preparation run in this browser tab. The tool does not upload or store the selected file.

Which image sizes are accepted?

One JPEG, PNG, or WebP file up to 20 MiB and 40 megapixels. Browser-supported decoding and encoding can vary by device and format.

Is it free?

Yes, during beta. Optional usage-credit plans are coming soon. Payments are not available and no credits are required.

Sources and method

The image is decoded with the browser's createImageBitmap() and encoded with canvas toBlob(). Browser support for JPEG and WebP encoding varies; the tool checks that the requested format was actually returned before offering a download. The size comparison uses the selected File and encoded Blob byte counts defined by the File API. Sources checked November 5, 2026.

How it works

1. Select one JPEG, PNG, or WebP image under the file and pixel limits. 2. Choose an output format and set JPEG/WebP quality. 3. Compress, compare the sizes, and download the new file. The image stays in this browser tab.

Good to know

Are my images uploaded?

No. The browser decodes the selected image and encodes the output locally; no image upload is part of this tool.

Does it always make images smaller?

No. PNG, high quality settings, and already optimized files may produce a larger result. Compare the displayed sizes.

What happens to transparent pixels in JPEG output?

JPEG does not support transparency, so transparent pixels are filled with white before encoding.

Does the output keep the original metadata?

Do not rely on that. Canvas re-encoding may discard source metadata; check the output when metadata matters.

Is it free?

Yes, during beta. Optional usage-credit plans are coming soon. Payments are not available and no credits are required.

Methodology and limitations

Accept one JPEG, PNG, or WebP file up to 20 MiB. Decode it with createImageBitmap, reject images over 40,000,000 pixels, draw at the original dimensions to a local canvas, and encode with HTMLCanvasElement.toBlob using the selected supported MIME type. JPEG output uses a white background; quality applies to JPEG/WebP and is ignored for PNG. Report actual input and output byte counts. No resizing, metadata preservation, batching, upload, or remote runtime is provided.