Convert between JPG, PNG and WebP. Runs on your device.
AVIF is a newer image format that some websites now serve instead of JPG, and many older programs, forms and print services cannot open it. This page opens with JPG selected so you can turn an AVIF file into something that opens almost anywhere. The caveat is specific to AVIF: your browser has to be able to decode it, and not every browser or version can. The first time you add an AVIF file, the tool opens a tiny 16 by 16 pixel test file to find out. If your browser cannot, the AVIF rows show a message to try the latest Chrome, Edge, Firefox or Safari, and any other files in the same batch still convert. If it can, the conversion works like any other. AVIF can hold transparent areas and JPG cannot, so clear parts are filled with the background colour, white by default. The default JPG quality is 90, and you can add up to 50 files and download them as one zip.
JPG is made for photographs. It drops detail the eye barely notices, so a photo stays small, and it has a quality setting from 1 to 100. This page starts at 90. JPG cannot store transparent areas. PNG keeps every pixel exactly, supports transparency and has no quality setting. That suits logos, screenshots and drawings with flat colour, and it suits photographs poorly, because a photo saved as PNG is often several times larger than the same photo saved as JPG. WebP can do both jobs: it has a lossy mode with a quality setting, like JPG, and it keeps transparency. Choosing PNG gives you a lossless copy of what the browser decoded, but it cannot bring back detail that an earlier JPG already lost. A result can also come out larger than the original, for example a small JPG saved as PNG. The row then says so instead of hiding it, and you can change the format or lower the quality and convert again.
JPG has no transparency. When the output is JPG and an image can hold clear areas (PNG, WebP, AVIF, SVG, GIF or BMP), the tool paints a background colour first and draws the picture on top. The colour is white, #ffffff, until you change it with the colour picker or by typing a hex code such as #f4f4f4. Your choice is remembered for next time. A picture with no clear areas looks the same either way. PNG and WebP output keep transparency as it is, so the background setting is hidden for them because it would do nothing. A fill cannot be undone: if you may need the transparent version later, keep the original file and convert a copy.
An SVG is a drawing described in text, so it has no fixed size in pixels. The tool draws it at the width written in the file, or at 1024 pixels wide when the file only has a viewBox, with the height following the shape. A viewBox of 200 by 100 comes out at 1024 by 512 pixels. The SVG width box overrides that for every SVG in the queue, from 16 to 8192 pixels. Scripts, external images and external fonts inside an SVG do not run or load, so text set in a font that is not on your device may be drawn in a fallback font. An animated GIF is a stack of frames. Only the first frame is converted, the queue row says First frame only, and the result is a single still picture. AVIF opens only in browsers that can decode it. The tool checks once with a tiny test file and shows a clear message if yours cannot.
The work is done by your browser's own image code, on a canvas inside this tab. There is no upload step and no server that receives pictures. The page counts visits with Google Analytics; those counts say which tool was opened and use rough groups such as 1 to 10 MB, never a file name, an image or an exact size. Each output is drawn fresh from the pixels, so metadata such as camera model or GPS location is not carried into the converted file. Because everything runs on your device, its memory sets the limits: up to 50 images in a batch, about 500 MB in total on a computer or 150 MB on a phone, and single images up to 100 megapixels, or 50 on a phone. Images are converted one at a time to stay inside that, and a very large batch may pause and ask you to download what is finished before it goes on.
Your browser could not decode a test AVIF file, so it cannot open yours either. Try the latest Chrome, Edge, Firefox or Safari. Other file types in the same batch still convert.
Yes, JPG is lossy. At quality 90 the change is small for photos. If you need no further loss, choose PNG as the output, which stores the decoded pixels exactly, though the file will be larger.
It depends on the output. PNG loses nothing from the decoded picture, but it cannot restore detail that an earlier JPG already dropped. JPG and WebP are lossy: at the default quality of 90 the change is small for photos, and each further save of a JPG adds a little more loss. Keep the original file and convert from it each time.
PNG stores every pixel without discarding anything, so a photo saved as PNG is often several times larger than the same photo as JPG. That is normal. Choose JPG or WebP for photos. When a result is bigger than the file you added, its row says Larger than the original, so you can see it before you download.
AVIF is decoded by your browser, and not every browser or version can open it. The first time you add an AVIF file, the tool tests a 16 by 16 pixel sample. If that fails, the AVIF rows show a message and the other files in the batch still convert. The latest Chrome, Edge, Firefox or Safari can usually open AVIF.
Only the first frame is converted. A GIF with 3 frames gives one still PNG, JPG or WebP of frame 1, and the queue row says First frame only. Animated output is not offered, so keep the original GIF if you need the motion.
JPG cannot store transparency, so clear areas of a PNG, WebP, AVIF, SVG, GIF or BMP are filled with a colour first. The default is white, #ffffff. Change it in the Background colour setting, or choose PNG or WebP as the output to keep the transparency.
Only in a browser that can open HEIC itself. Safari is built to, but we have not tested it yet, and we do not add a HEIC reader of our own. If your browser cannot, the tool says so when you add the file, and nothing is uploaded. Open this page in Safari, or export the photo as JPEG from Photos, then add that file here to get a PNG or WebP.