PixelHub Fast image tools, no signup or upload limits

Image Format Converter

Pick an image, choose an output format, and adjust quality for JPEG or WebP. Everything happens on your device — the file is never uploaded anywhere.

Convert images without losing control over quality or size

Conversion happens by drawing your image onto an in-memory <canvas> and re-encoding it with canvas.toBlob(callback, mimeType, quality) — the browser's own image encoder, running locally, no server involved:

canvas.toBlob(
  (blob) => { /* download blob, compare blob.size to the original */ },
  "image/jpeg", // or "image/png" / "image/webp"
  0.8,          // quality, ignored for PNG
);

PNG output is always lossless, so the quality slider is disabled for it, while JPEG and WebP use the quality value you choose, trading detail for a smaller file. JPEG has no transparency channel, so converting a transparent image to JPEG fills the transparent areas with white before encoding — the alternative, leaving the canvas untouched, would silently turn transparency into black in most browsers.

What to expect

Exact savings depend entirely on what's in the image — a flat-color graphic or a screenshot with lots of repeated pixels compresses far more than a detailed photo does. As a rough illustration, a 2.4 MB PNG screenshot converted to JPEG at 80% quality typically lands somewhere around 200–400 KB; the same image at 40% quality comes out smaller again, at a visible cost in sharpness. This tool shows the original and converted sizes side by side after every conversion, so you can judge the actual trade-off on your own image instead of trusting a generic number.

Frequently asked questions

Which format should I pick — PNG, JPEG, or WebP?

PNG is lossless and supports transparency, so it's the right choice for screenshots, logos, and graphics with sharp edges or text — but it produces larger files for photos. JPEG is lossy with no transparency, but compresses photos far more efficiently, which is why it's the long-standing default for photographs. WebP is also lossy here, usually beats JPEG at the same visual quality, and every current browser supports it — but very old browsers can't encode or display it, which is why JPEG remains available as a safe fallback.

Why is the quality slider disabled when I pick PNG?

PNG compression is always lossless — it shrinks the file by finding redundancy in the pixel data, never by discarding detail, so there's no quality dial that would do anything. The slider only affects JPEG and WebP, which trade image detail for a smaller file at whatever level you choose, so it's enabled only for those two formats.

Will converting a transparent PNG to JPEG break the transparency?

Yes — and this tool is upfront about it rather than leaving you with a black background. JPEG has no alpha channel at all, so before drawing your image onto the canvas for a JPEG output, we fill the canvas white first. Transparent areas become solid white in the result, which is the standard convention, but the transparency itself is genuinely gone in that format — choose PNG or WebP output if you need to keep it.

What happens if my browser can't encode WebP?

canvas.toBlob() is allowed to return a null result when the browser has no encoder for the requested format, which in practice only happens with WebP on very old browsers. Instead of silently failing or handing you a broken download link, this tool detects that null result and shows a clear message telling you to try a current browser or pick PNG or JPEG instead.

Is my image uploaded anywhere?

No. The file is read locally, drawn to an in-memory canvas, and re-encoded with canvas.toBlob() — entirely inside your browser. Nothing is ever sent to a server, logged, or stored, which is true for every tool on this site.