PNG is wonderful for graphics and terrible for photos — the file sizes balloon. Convert PNG photos to JPG and keep 95% of the visual quality at 10% of the file size.
or drag and drop your image here
Supports PNG
Supports PNG
Drop PNGs into the tool — single files or batches. Transparent PNGs are flattened against a white background by default (configurable).
Decoded pixels run through a JPEG encoder at quality 90. Photo content compresses 8–12×; graphics with solid color compress less efficiently.
Output files keep the source filenames with a .jpg extension. Typical results: a 4 MB PNG becomes a 400–600 KB JPG with no visible difference.
Convert images between these related converters
insight-default-reason
encoding happens in your tab, not on our servers
convert 50+ PNG photos in one operation
Flat graphics keep PNG. Photos should usually be JPG.
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).
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).
Transparency handling, quality settings, and when not to convert.