JPG compresses every time you save. PNG doesn't. If you're about to edit, crop, or composite a JPG, convert to PNG first and keep the pixels you have.
or drag and drop your image here
Supports JPG, JPEG
Supports JPG, JPEG
Drop .jpg or .jpeg files anywhere in the window. The converter accepts CMYK and RGB JPGs as well as progressive JPGs.
JPG is decompressed to full 8-bit RGB pixels. Those exact pixels are written to PNG with DEFLATE compression — no further quality loss.
One file downloads directly; multiple files bundle into a zip. Original filenames preserved, extension swapped to .png.
Convert images between these related converters
insight-to-png-reason
JPG decoder and PNG encoder run entirely inside your browser
dozens of JPGs processed in a single drag-and-drop
Lossy perceptual compression vs lossless algorithmic compression
Joint Photographic Experts Group JFIF format
Note, JPG is a lossy compression. In addition, you cannot create black and white images with JPG nor can you save transparency. Requires jpegsrc.v8c.tar.gz. You can set quality scaling for luminance and chrominance separately (e.g. -quality 90,70). You can optionally define the DCT method, for example to specify the float method, use -define jpeg:dct-method=float. By default we compute optimal Huffman coding tables. Specify -define jpeg:optimize-coding=false to use the default Huffman tables. Two other options include -define jpeg:block-smoothing and -define jpeg:fancy-upsampling. Set the sampling factor with -define jpeg:sampling-factor. You can size the image with jpeg:size, for example -define jpeg:size=128x128. To restrict the maximum file size, use jpeg:extent, for example -define jpeg:extent=400KB. To define one or more custom quantization tables, use -define jpeg:q-table=filename. These values are multiplied by -quality argument divided by 100.0. To avoid reading a particular associated image profile, use -define profile:skip=name (e.g. profile:skip=ICC).
Portable Network Graphics
Requires libpng-1.0.11 or later, libpng-1.2.5 or later recommended. The PNG specification does not support pixels-per-inch units, only pixels-per-centimeter. To avoid reading a particular associated image profile, use -define profile:skip=name (e.g. profile:skip=ICC).
Realistic expectations for a lossy-to-lossless conversion.