What goes in, and what comes out
Input: HEIC, PNG, JPG, WebP, AVIF, GIF, BMP and SVG. Output: PNG, JPG or WebP. Raster files are decoded into a bitmap, drawn onto a canvas at the size you asked for, and re-encoded by the browser’s own encoder.
Output formats are JPG, PNG and WebP. HEIC is accepted as input using a decoder loaded on demand in the browser; HEIC and AVIF output are not offered.
Conversion is always a re-encode, never a rename. Changing a file’s extension from .webp to .jpg does not convert it — the bytes are still WebP, and roughly half the apps that open it will refuse or show a broken thumbnail.
PNG, JPG or WebP — which output to choose
- PNG — lossless with an alpha channel. Best for screenshots, logos, UI captures, line art and anything containing text or hard edges. A photograph saved as PNG is typically 3–6× the size of a good JPEG for no visible gain.
- JPG — lossy, no transparency, accepted absolutely everywhere. The right answer for photographs and for any system that is old, offline or fussy about extensions.
- WebP — lossy or lossless, keeps alpha, roughly 25–35 % smaller than JPEG at matching quality and about 20 % smaller than PNG for lossless content. Supported by every current browser, but still refused by some print shops, government upload forms and older desktop software.
Rule of thumb: a photograph for a web page → WebP; a photograph you have to send someone → JPG; anything with transparency or text → PNG, or WebP if only browsers will ever open it.
Transparency and the JPG background colour
PNG, WebP, GIF and SVG can carry an alpha channel; JPG cannot. When a source with transparency is converted to JPG, every transparent pixel must become an opaque colour, and this tool asks which one instead of guessing.
The colour picker only appears when it can actually matter — output JPG plus at least one input that can hold alpha — and after conversion each row reports how much of the image was actually transparent. White (#ffffff) is the default; pick the background your image will sit on, or black for a dark interface. Getting it wrong shows up as a coloured halo around the anti-aliased edges of a logo.
For JPG output the canvas is created with alpha disabled and filled with your colour first, so semi-transparent pixels blend against that colour. A naive conversion composites them over black instead, which is why logos exported elsewhere often come back with grey fringes.
SVG: turning a vector into pixels
An SVG is code, not pixels, so it is rasterised through an <img> element rather than createImageBitmap, which browsers do not handle reliably for SVG. Whatever width, height or viewBox the file declares becomes its natural size; a file with no intrinsic dimensions is rendered at 1,024 px on the long edge, keeping the viewBox proportions.
Decide the output size before you convert: use Exact W×H or Percent to render at the resolution you actually need. Rasterising at 1,024 px and enlarging afterwards gives a blurry result, because the detail was discarded at render time. For an icon that will be displayed at 32 px, render at 128 px and let the browser scale it down.
The conversion is one-way, and external references do not travel. An SVG that pulls a font from Google Fonts, or embeds <image href="…"> from another server, can render with a fallback face or a blank rectangle. Convert the text to outlines in your editor first if the typography matters.
GIF and BMP: what survives the trip
An animated GIF decodes to its first frame only. There is no animated output format here, so a 60-frame GIF becomes one still image — exactly what you want for a poster frame, and a surprise if you expected animation.
BMP is uncompressed: a 1,920×1,080 BMP is about 8 MB, where the same picture is often under 1 MB as PNG and under 300 KB as JPG. Converting away from BMP is nearly always a large win with no visible cost.
A GIF’s 256-colour palette does not come back. Converting GIF → PNG gives you a lossless copy of the already-reduced colours, not a restoration of the original photograph.
Resizing while you convert
Five modes are available: none, percent, max width, max height, and exact W×H with an aspect lock.
Max width and Max height only ever shrink: an image already narrower than the bound passes through at its original size. That lets you run a mixed batch through “max width 1200” and change only the oversized files. Percent and Exact will enlarge if you ask them to, with the softness that always follows.
Exact W×H with the aspect lock on computes the height from the width you type, so the picture is never stretched. Turn the lock off only when you actually want distortion — this tool scales, it does not crop to fill a box.
Whatever you ask for, the output is clamped to what a canvas can rasterise — 16 megapixels of area and 4,096 px on the long edge — and rows that hit the cap are marked so the result is never silently different from what you set.
Quality — and when the slider does nothing
Quality (default 90) applies to JPG and WebP only; the value is handed to the encoder as 0.01–1.00. PNG ignores it completely because PNG is lossless, so the field is disabled with a hint rather than left there to mislead you.
90 is deliberately higher than a compressor’s default. Converting is usually about compatibility, and a conversion that visibly degrades the picture defeats its own purpose. Drop to 75–80 when the point of the conversion is a smaller file — or use the image compressor, which searches for the quality that hits a byte target.
WebP at quality 90 is close to visually lossless on photographs and is still smaller than JPEG at 85 — which is the main reason to convert a JPG library to WebP at all.
Orientation, metadata and privacy
The decoder applies the image orientation before export. EXIF is removed by default. Preserving EXIF can retain camera, date and GPS data when readable metadata is present; it is not a guarantee that every original field survives. Review this choice before sharing.
Drop as many files as you like. Each row shows the source dimensions, the output size and any warning — alpha loss, or a downscale to the canvas cap. Download them one at a time, or take the whole batch as a ZIP, stored rather than deflated because image formats are already compressed.
Conversion runs on your device; photo bytes are not uploaded. Select several files, adjust size and metadata, then download individual results or a ZIP. The displayed size estimate is a guide; actual encoded size depends on the picture and settings.