Drag and drop, paste from clipboard,
or use the button below.
Preview
Compression settings
How it works
This free image compressor uses your browser's built-in Canvas API to re-encode images at a lower quality, reducing file size without changing dimensions. Select an image, choose your output format, and adjust the quality slider to find the right balance between file size and visual quality. JPEG and WebP support lossy compression with adjustable quality. PNG is lossless, so the quality slider does not apply.
Your images are never sent to a server. The compression, format conversion, and file export all happen locally, which makes the tool fast and private. No cost, no limits. It works on any modern browser, on both mobile and desktop.
Want proof? Open your browser's developer tools and watch the network tab while you work: your images never upload.
Frequently asked questions
Does compressing change the image dimensions?
No. The width and height in pixels stay exactly the same. Smaller files come from re-encoding at a lower quality, not from shrinking the image. If you also need fewer pixels, use the Resize Images tool first.
Why did my PNG get larger instead of smaller?
PNG is a lossless format, so the quality slider has no effect and re-encoding can produce a file bigger than the original, especially for photos. For real size reduction, choose JPEG or WebP, which support adjustable lossy compression.
What happens to transparency when I export as JPEG?
JPEG has no alpha channel, so any transparent areas are filled with a solid white background. To keep transparency, export as PNG or WebP instead.
Which image formats can I open?
Any format your browser can decode, which typically includes JPEG, PNG, WebP, and GIF. Output is limited to JPEG, WebP, or PNG. Whether a format like HEIC opens depends on your specific browser and operating system.
More tools from Clean.tools
Use Clean.tools from your AI agent
Clean.tools also runs an MCP server — read-only utility tools your AI agent can call directly. No key, no signup: requests are processed in memory and request contents are never stored.
claude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcpclaude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcphttps://mcp.clean.tools/mcphttps://mcp.clean.tools/mcpEvery tool, the REST API, and setup for Cursor, Claude Desktop, VS Code & more →