Free Image Converter Online
Convert images between PNG, JPEG, and WebP formats. Batch convert multiple files at once. No upload to any server.
Supports JPEG, PNG, WebP, BMP, GIF · up to 50 MB each
Output Format
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
- GIF, 1987. CompuServe released GIF (Graphics Interchange Format) using LZW compression on an indexed 256-colour palette. It became the lingua franca of early-web graphics until LZW patent claims in 1994 spurred the development of PNG.
- JPEG, 1992. ITU-T T.81 / ISO/IEC 10918-1, photographic-tuned lossy DCT, universally adopted within years. The first widely-implemented format that made the photo-rich web possible.
- PNG, 1996. IETF RFC 2083 from Thomas Boutell, Mark Adler and a CompuServe-led working group. DEFLATE compression instead of LZW, full 8-bit alpha channel, always lossless, royalty-free. PNG became the standard for graphics, logos, and screenshots; JPEG remained the standard for photographs.
- WebP, 2010. Google released WebP, adapting VP8 video-codec intra-frame coding into a still-image format. Lossy WebP is 25-34% smaller than JPEG; lossless WebP is 26% smaller than PNG. Universal browser support arrived in 2020 when Safari 14 and iOS 14 closed the last gap.
- AVIF, 2019. The Alliance for Open Media released AVIF using AV1 intra-frame coding inside the HEIF container. Roughly 50% smaller than JPEG at equivalent quality. Browser decode support reached 95%+ by 2023; encode support remains patchy outside Safari, which is why this tool can read AVIF but not write it.
- Canvas-based browser conversion, 2014-2020. HTML5 Canvas matured to the point where any in-browser tool could mediate any-to-any format conversion via decode-paint-encode, with no external libraries needed for the common output formats (JPEG, PNG, WebP). The image-converter is a direct application of that capability: drop anything, pick your output, download.
How to Convert Images
- Select your target format (JPEG, PNG, or WebP) above.
- Adjust the quality slider for JPEG/WebP output (higher = better quality, larger file).
- Drop or select one or more images.
- Images are converted instantly in your browser.
- Download individually or all at once.
When to Use Each Format
- JPEG · Best for photographs and complex images with many colors. Uses lossy compression for small file sizes. Does not support transparency.
- PNG · Best for graphics, logos, screenshots, and images requiring transparency. Lossless compression means larger files but perfect quality.
- WebP · Google's modern format that provides both lossy and lossless compression. Typically 25-35% smaller than JPEG at equivalent quality. Supports transparency. Supported by all modern browsers.
Common Conversions
- PNG to JPEG · Reduce file size for photos saved as PNG. Great for web pages and email.
- JPEG to PNG · Convert to lossless format for further editing without quality loss.
- PNG/JPEG to WebP · Optimize images for modern websites. Significantly smaller files.
- WebP to PNG/JPEG · Convert for compatibility with older software or platforms that don't support WebP.
Real-world conversion workflows
- Bulk format normalisation. A folder of mixed-format images (some PNG, some JPEG, some WebP) needs to be unified to a single format for a CMS, an app's asset pipeline, or a workflow that expects one extension. Drop all the files, pick the target format once, download them all as a ZIP. The decode side is uniform across input formats, so the tool doesn't care what mix you throw at it.
- Converting screenshots for sharing. Modern operating systems screenshot to PNG by default. Sharing a screenshot via email or chat is often quicker as a smaller JPEG. Drop the PNG, output as JPEG at quality 90, paste into the message. The trade-off (alpha loss, slight quality reduction) is acceptable for ephemeral sharing and worth the file-size savings.
- Modernising old website assets. Replace PNG and JPEG assets with WebP versions to cut page weight. WebP is 25-34% smaller than JPEG at equivalent quality and 26% smaller than PNG losslessly, with the same alpha-channel support. Modern browsers (post-2020) handle WebP natively. Drop a folder of legacy assets, pick WebP output, download, replace.
- Normalising images for AI or ML pipelines. Many machine-learning pipelines expect a specific format (often PNG for lossless training data, JPEG for size-constrained inference). A mixed dataset gathered from web scraping, user uploads, or multiple sources needs to be normalised. This tool converts everything to one format, after which the dataset has consistent decode behaviour for the training or inference code.
- Extracting still frames from animated GIFs. The browser's
<img>decoder gives you the first frame of an animated GIF when you drop it onto this tool. Converting to PNG, JPEG or WebP produces a single still image of that first frame. Useful for thumbnails, social-media previews, or any context where you need a static image derived from an animation. - Decoding AVIF for legacy targets. AVIF is now broadly readable by browsers (95%+ support since 2023), but legacy targets still want JPEG or PNG. Drop an AVIF file, pick JPEG output, and the converted image works in any context that accepts JPEG, including Outlook 2016 and other legacy clients. (For AVIF output, use Squoosh; this tool can read but not write AVIF.)
Common pitfalls and what they mean
- JPEG output loses transparency. If your source has an alpha channel (PNG, WebP-with-alpha, AVIF-with-alpha) and you pick JPEG output, transparent areas become white in the result. The alpha information is gone; you cannot recover it from the JPEG. For sources with transparency you care about, pick PNG or WebP output instead.
- PNG output of a photographic source grows the file. A JPEG photo at quality 85 might be 250 KB; the same image as PNG is often 1-2 MB. PNG's lossless DEFLATE compression is much less efficient than JPEG's lossy DCT for photographic content. Convert to PNG only when you specifically need losslessness or transparency support, not as a default.
- WebP output won't display in legacy email clients. Outlook 2016 and earlier on Windows, Apple Mail before macOS 11 Big Sur, and various older CMS installations cannot display WebP. If your destination is one of those, pick JPEG or PNG output instead. WebP is the right choice for modern web hosting, recent email clients, and current CMS, but not for everything.
- Animated GIFs lose their animation. The browser's
<img>decoder used here gives only the first frame of an animated GIF. The output (JPEG, PNG, or WebP) is a single still image of that frame; the rest of the animation is discarded silently. For preserving animation use a GIF-specific tool, or convert to animated WebP / APNG with a dedicated tool. - HEIC input fails outside Apple devices. Chrome and Firefox cannot decode HEIC natively (HEVC patent licensing barrier). Drop a HEIC into this converter on a non-Apple browser and it fails. Use the dedicated HEIC to JPG tool first (which ships a libheif WebAssembly decoder), then pipe the JPEG through this converter if you need PNG or WebP afterwards.
- EXIF and ICC metadata may be stripped. Canvas-based re-encoding typically discards EXIF, XMP, IPTC metadata and embedded ICC colour profiles. The output carries pixel data only. Usually invisible for screen sharing; problematic for archival or print-prep workflows that depend on capture metadata. Use a metadata-aware desktop tool for those.
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
- You need AVIF output. Canvas in 2026 can decode AVIF universally, but encode is patchy (Safari has it, Chrome and Firefox don't). For AVIF output, use Squoosh (Google Chrome Labs, also entirely client-side, ships its own AV1 encoder). AVIF is roughly 50% smaller than JPEG at the same visual quality; for the most efficient modern web delivery it's worth the extra tool.
- You need to decode HEIC on a non-Apple browser. Chrome and Firefox cannot decode HEIC natively because of HEVC patent licensing. Use the dedicated HEIC to JPG tool first, which ships a libheif WebAssembly decoder, then pipe the result through this converter if you need PNG or WebP output.
- You need to preserve animation. This tool reads only the first frame of animated GIFs. For preserving the motion, stay in animated GIF, convert to animated WebP via a dedicated tool, or convert to APNG. Browser-based first-frame-only conversion can't capture multi-frame data.
- Batch automation across hundreds or thousands of files. Use Sharp in Node.js (the canonical server-side library, built on libvips), ImageMagick or GraphicsMagick on any shell, or Pillow in Python. CLI tools handle thousands of files without browser memory limits and run from CI jobs, deploy hooks or cron tasks.
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.