Nimble Toolbox

Image tools

41 tools, all running in your browser

Converting, compressing, and resizing, done by your own browser. Nothing is uploaded, so a screenshot of an internal dashboard or a photo you have not published yet stays on your machine.

Change the picture

Resize, crop, rotate, or compress it. Change its background or DPI, hide part of it, see and remove its metadata, or read a camera’s shutter count from it.

Change the format

Move a picture between formats, including the one an iPhone saves, a GIF, and an icon.

Which format you actually want#

JPG stores photographs in a fraction of the space of anything lossless, because it discards detail the eye is bad at noticing. That trade is excellent for a photograph and poor for a screenshot: flat colour and sharp text are exactly what its compression handles worst, which is why a screenshot saved as JPG comes back with grey fuzz around the letters.

PNG is lossless and supports transparency, which makes it right for logos, icons, diagrams, and screenshots, and wasteful for photographs. WebP does both jobs and lands roughly 25 to 35 per cent smaller than either at comparable quality, with support in every current browser. The usual reason not to use it is a tool further down your pipeline that still cannot read it.

Some formats you receive rather than choose. HEIC is what an iPhone saves by default, about half the size of a JPG at the same quality, but plenty of upload forms and Windows programs still refuse it, so HEIC to JPG is the usual fix. AVIF compresses harder than WebP and every current browser shows it, which makes it a good format to publish in and an awkward one to send someone. GIF holds 256 colours at most, which is why a photo saved as one looks banded. GIF to PNG keeps any frame exactly, transparency included.

Converting between lossy formats compounds the loss. A JPG turned into a PNG is a lossless copy of an image that has already been damaged: the file gets larger and the artefacts stay. If you have the original, convert from that rather than from an export.

What running in the browser changes#

These tools use the canvas and File APIs, which every browser has had for over a decade. The page reads your file into memory, redraws it at the size or in the format you asked for, and hands the result back as a download. No request ever carries your image, which you can confirm by opening the network panel and watching it stay empty.

That changes three things you can feel. A batch of twenty images is limited by your processor rather than your connection, because there is no upload to wait for. There is no file size cap of the kind an upload form imposes, though the tab still has to fit the decoded image in memory, which a desktop manages easily and an old phone may not. And once the page has loaded, it keeps working with the network off.

Frequently asked questions#

Is there a limit on file size?

#

Not a fixed one. Because nothing is uploaded there is no upload cap; the limit is the memory your browser tab can allocate for the decoded image, which is roughly width × height × 4 bytes. A 50-megapixel photo needs around 200 MB of that, which a desktop handles and a several-year-old phone may not.

How do I get an image under 100 KB, or another size limit?

#

Use compress image to size. Type the limit a form sets, and its width and height in pixels if it gives them, and it finds the highest quality that fits. When you care about how the picture looks rather than a number, the image compressor lets you pick the quality yourself.

Do these work offline?

#

Yes, once the page has loaded. The conversion is JavaScript running in your tab with no server involved, so you can disconnect and keep working. Reloading the page while offline is the part that will not work, unless your browser has it cached.

Does converting reduce the quality?

#

It depends on the direction. Converting to PNG is lossless, and so is the image compressor at 100 per cent; below that it keeps the PNG format but cuts the colours to 256 or fewer. Anything to JPG, WebP, or AVIF re-encodes and loses a little, and doing that repeatedly to the same image accumulates visible artefacts. Convert from the original rather than from a previous export where you can.