Free Image Converter Online

Convert images between PNG, JPEG, and WebP formats. Batch convert multiple files at once. No upload to any server.

Your files never leave your device
Drop images here or click to browse

Supports JPEG, PNG, WebP, BMP, GIF · up to 50 MB each

Output Format
JPEG
Best for photos. Smaller files.
PNG
Lossless. Supports transparency.
WebP
Modern format. Smallest size.
92%

What format conversion actually is

Every image file format you encounter, from a 1992 JPEG to a 2019 AVIF, ultimately encodes the same thing: a rectangle of pixels. What differs is how each format compresses, structures, and (sometimes) annotates those pixels on the way to disk. JPEG uses lossy DCT compression and no alpha channel. PNG uses lossless DEFLATE compression and a full 8-bit alpha channel. WebP uses either lossy VP8 intra-frame coding or lossless predictive transforms, with optional alpha. GIF uses LZW-then-DEFLATE on an indexed palette. BMP is mostly raw pixels. AVIF uses AV1 intra-frame coding, the newest and most efficient of the family.

Converting between any two of these formats follows the same conceptual recipe: decode the source bytes into raw RGBA pixels, then re-encode those pixels using the destination format's rules. The browser's Canvas API exposes exactly this two-step pipeline. When you drop an image, the browser's built-in decoder for that input format reads the bytes and produces a pixel buffer. The buffer is drawn onto an in-memory canvas. Then canvas.toBlob('image/jpeg' or 'image/png' or 'image/webp', quality) hands the pixels to the browser's encoder for the chosen output format. No external libraries are needed; everything is built into the browser.

This is why this tool can support so many input formats with zero per-format code on our side: every browser shipped since 2020 can decode JPEG, PNG, WebP, GIF, BMP and AVIF natively, and most can decode SVG by rendering it (the conversion will rasterise the vector to pixels in the target raster format). The output side is limited to JPEG, PNG and WebP because those are the encoders the browser ships universally. AVIF encoding is patchy in 2026 (Safari has it, Chrome and Firefox don't), so AVIF output isn't offered here; if you need AVIF, use Squoosh which bundles its own encoder.

How this tool works under the hood

The pipeline is the HTML5 Canvas 2D API with no external library. When you drop a file, the File API hands the bytes to a new HTMLImageElement; the browser identifies the format from its magic bytes and dispatches to its built-in decoder. JPEG is decoded via the standard DCT inverse path. PNG runs through the DEFLATE inflate plus the appropriate filter undo. WebP runs the VP8 intra-frame decoder (for lossy) or the predictive-transform decoder (for lossless). The result in every case is the same RGBA pixel buffer, regardless of input format.

A fresh in-memory <canvas> is sized to the image. If the chosen output is JPEG and the source had alpha (PNG, WebP-with-alpha, AVIF-with-alpha), the canvas is pre-filled with white to give the transparent pixels somewhere to land; otherwise the canvas inherits the pixels directly. The decoded pixels are painted onto the canvas with ctx.drawImage(). Then canvas.toBlob(targetMime, quality/100) invokes the encoder for the chosen output format: JPEG's DCT pipeline at the slider's quality, PNG's lossless DEFLATE (quality ignored), or WebP's encoder (lossy at the slider's quality).

For single files, the output Blob becomes a downloadable object URL. For multi-file batches, the tool runs the same pipeline in a loop and aggregates the results. Nothing leaves the tab; no library is downloaded; the only network traffic is the initial page load. Open DevTools' Network tab while converting: no requests carry image data. Switch the browser to airplane mode after the page loads and the converter keeps working on local images. Privacy follows directly from this architecture: there is no upload step, no log entry, no operator infrastructure to trust.

A brief history of cross-format image conversion

How to Convert Images

  1. Select your target format (JPEG, PNG, or WebP) above.
  2. Adjust the quality slider for JPEG/WebP output (higher = better quality, larger file).
  3. Drop or select one or more images.
  4. Images are converted instantly in your browser.
  5. Download individually or all at once.

When to Use Each Format

Common Conversions

Real-world conversion workflows

Common pitfalls and what they mean

Privacy: images never leave your device

Every cloud-based image-format converter (CloudConvert, Convertio, iLoveIMG, FreeConvert, Aspose, and the dozens of "convert image online" services) uploads your file to the operator's server, runs the conversion, and returns the converted file as a download. Images routinely contain content people would not want copied onto a stranger's hard drive: screenshots of internal interfaces and confidential documents, photos with embedded GPS coordinates of where they were taken, scans of ID cards and tax forms, illustrations under NDA, design mockups not yet released. Most operators publish privacy policies committing to delete uploads within an hour or two and to encrypt in transit, and the larger ones hold ISO/IEC 27001 certification. They have strong commercial reasons to honour those policies. But "deleted within an hour" is not "never seen." During that hour the image content sits in operator infrastructure, accessible to any process or person with appropriate permissions, and visible in logs and backups according to whatever retention policy applies.

This converter never uploads anything. The entire pipeline (file pick, decode via the browser's built-in decoders, Canvas paint and optional alpha composite, encode via the browser's built-in encoders, download) runs inside your browser tab using JavaScript and the HTML5 Canvas API. No upload, no network request carrying image data, no log entry. You can verify by opening the browser developer tools to the Network tab before converting: no request fires with image content. The only network traffic is the initial page load itself; no external libraries are downloaded for the conversion. Switch the browser to airplane mode after the page loads and the converter keeps working on local images.

When another tool is the right choice

Frequently Asked Questions

Does converting between formats lose quality?

Converting to PNG is always lossless. Converting to JPEG or WebP applies lossy compression, but at the default 92% quality setting, the difference is virtually invisible. Lower quality settings trade visual fidelity for smaller file sizes.

What happens to transparency when converting to JPEG?

JPEG does not support transparency. Transparent areas will be filled with a white background. If you need transparency, use PNG or WebP instead.

Can I convert multiple images at once?

Yes! Select or drop multiple images and they will all be converted to your chosen format. Use "Download All" to get them in one click.

Are my images uploaded to a server?

No. All conversion happens in your browser using the Canvas API. Your images never leave your device.

More frequently asked questions

Why doesn't this tool offer AVIF output?

Because Canvas-based encoding for AVIF is patchy in 2026: Safari supports it, but Chrome and Firefox don't ship an AVIF encoder. A tool that worked only on one browser would be confusing. For AVIF output, use Squoosh (Google Chrome Labs, also entirely client-side); it ships its own AV1 encoder bundled into the page and produces AVIF in any browser. We can read AVIF input here (95%+ of browsers can decode it since 2023), just not write it.

Why can't I drop a HEIC file?

On Safari and other Apple-platform browsers, HEIC works because the operating system provides the HEVC decoder. On Chrome, Firefox, and Edge it doesn't work because the HEVC codec is patent-encumbered (HEVC patents are pooled across MPEG LA, HEVC Advance, Velos Media, etc.) and those browsers don't ship native HEVC decoding. Use the dedicated HEIC to JPG tool first, which ships a libheif WebAssembly decoder to handle HEIC anywhere; then if you need PNG or WebP output, pipe the resulting JPEG through this converter.

Which output format should I pick?

Depends on content and destination. For photographic content on modern web, WebP gives the smallest file with no visible quality loss; for legacy compatibility (older email clients, pre-2020 CMS, JPEG-pinned submission systems), JPEG is universal. For graphics, screenshots, logos, or anything with sharp colour edges and transparency, PNG preserves them perfectly. WebP also handles graphics in its lossless mode, smaller than PNG, but only works on modern destinations. Rule of thumb: WebP for modern web, JPEG for photos to legacy destinations, PNG for graphics or lossless needs.

Does this tool work offline?

Yes. The decoders for JPEG, PNG, WebP, GIF, BMP and AVIF, plus the encoders for JPEG, PNG and WebP, are all built into the browser. No external library is downloaded for the conversion. Subsequent visits to this page work entirely offline as long as the page itself remains in the browser cache. You can verify by enabling airplane mode after opening the page once and converting a local image.

Will EXIF metadata (camera, GPS, capture date) survive the conversion?

Usually not. The Canvas API operates on raw pixel data; it doesn't carry the EXIF, IPTC, XMP metadata blocks or the embedded ICC colour profile through to the output. For ordinary screen sharing this is usually a privacy win (GPS coordinates and device serial numbers don't leak). For archival or photographic workflows where the metadata matters, use a metadata-aware desktop tool: ExifTool, ImageMagick with explicit options, or Photoshop's Export As, all of which can preserve metadata across the conversion.

Is there a desktop or command-line equivalent?

Several. For batch automation, sharp in Node.js (built on libvips) is the standard server-side library: sharp(buf).toFormat('webp').toBuffer(). ImageMagick on any shell: magick input.jpg output.webp. Pillow in Python: Image.open(p).save(out, 'PNG'). For one-off interactive work with broader format support including AVIF output, Squoosh (Google Chrome Labs, also client-side) is the closest browser alternative. Photoshop, Affinity Photo, GIMP and Preview on macOS cover the desktop GUI case and preserve metadata more reliably than browser-based conversion.

Related Tools