fileformer
search⌘KtranslateENexpand_moreupload_fileConvert
Converters8 file families · 44 direct conversions
What changes in a conversionarrow_forward
home/image-compressor

Smaller images. Same picture.

Open any of 69 image formats (JPG, PNG, HEIC, TIFF, PSD, camera RAW and more), pick a quality or the size it must fit, and compare the real result with the original, pixel for pixel. Save it back in the same format or any of the others. It all stays on your device.

or drop a file anywhere here
you save…
originalcompressedpreparing…
click the image to zoom in there
Choose qualityTarget size
Quality75
smallestsweet spot 70-85best
Or start from a use
Email attachmentq60small, still clearWebsite photoq75the usual sweet spotPrint or archiveq90near-original detailEditing laterq95keeps headroom
Make it no bigger than
Shrink the dimensions if no quality fits
What the search found
Longest side
Original256019201280
Output format
JPGopens everywhereWebPsmaller, all browsersAVIFyour browser can’t encode itPNGlossless, for graphicsJPEG XLnext-gen, very smallJPEG 2000archives, medical
searchMore formats54 of 69expand_more
search
.
No format matches.
Camera data (EXIF)
RemoveKeep
This image carries no EXIF block, so there is nothing to keep or remove.
410 KB →…
Encoding…downloadDownload · 474 KB
~/how-target-size-works

There is no “make it 500 KB” setting. So it guesses, and checks.

Encoders take a quality number, not a size, and the size each quality produces depends entirely on the picture. A sky compresses to almost nothing, foliage barely at all. So target-size tools search: encode, measure, halve the range, repeat. The table on the right is the actual search for your image, every encode included. When even the lowest quality is too big, the only lever left is fewer pixels.

Run the search on this photo7 encodes
TrySizeQualityBytesRange leftFits
The search runs on the photo above. Each row it adds is one real encode: the quality it tried, the bytes that came out, and whether that fits.Fit it in
Each row will be a real encode of your image.
~/the-curve-for-your-photo

Every quality setting, measured on your image.

Each dot is a real encode of a 640 px copy of your image, at qualities 10 to 100. Across: file size, on a log scale. Up: how close it looks to the original, measured with SSIM (structural similarity, 1 = identical). The curve flattens near the top, so above the knee you pay a lot of bytes for differences nobody sees.

SSIM 0.9SSIM 0.95SSIM 0.98SSIM 0.99SSIM 0.995SSIM 0.9991.0 KB1.0 KB2.0 KB5.0 KB10 KB20 KB50 KB100 KBmeasuring…
JPGWebPAVIF: your browser cannot encode itnumbers on the dots are the quality setting
the kneeNot measured for this format.
bytes to match JPG quality 80
JPGnot reached
WebPnot reached
Measured on this image with your browser’s built-in encoders, which favour speed: dedicated tools (mozjpeg, cwebp, avifenc) do better at every size. JPEG XL would sit near AVIF, but no browser can encode it from a canvas.
~/where-the-bytes-are

What your file is made of, before and after.

The original is read segment by segment: compressed pixels, colour profile, camera data, embedded thumbnail. Re-encoding through a canvas keeps only the pixels, which is why every compressor strips metadata unless it copies it back on purpose.

Compressed · JPG quality 96
Original: 1600 × 1000 at 2.05 bits per pixel. Compressed: 1600 × 1000 at 2.37 bits per pixel.
~/every-format

Your image in every format, measured.

Each format below gets what it is best for and where it falls short. The button saves your image (or the sample) at 480 px and quality 75 in every format this page writes, decodes each file again and scores it with SSIM against the original. 1.0000 means identical.

smallest.piconrun the test
smallest, SSIM ≥ 0.97.gifrun the test
largest.pfmrun the test
Open an image first.speedMeasure all formats
formatbest for · watch outheresizevs originalSSIM
Web & everyday7 formats
.7 formats
JPEG
.jpgJPEGphotos and web images where size beats perfect fidelitydrops detail you can’t easily see; bad for logos and textbrowser-
PNG
.pngPNGlogos, screenshots, diagrams, anything with alphalarger than JPEG on photos, but pixel-perfectbrowser-
WebP
.webpWebPweb images: smaller than JPEG, with alpha and animationevery current browser opens itbrowser-
AVIF
.avifAVIFthe smallest web images at good qualityslow to encode; support still growingopens only-
GIF
.gifGIFshort simple animations, low-colour graphics256 colours, poor for photosImageMagick-
SVG
.svgSVGlogos and icons that must scaleshapes, not pixels; a photo is embedded as a bitmapImageMagick-
JPEG XL
.jxlJPEG XLISO 18181, lossless JPEG recompressionImageMagick-
Print & professional11 formats
.11 formats
TIFF
.tiffTIFFprint, scans, master files you will edit againlarge; not for the webImageMagick-
Photoshop
.psdPhotoshopan editable Photoshop mastera working file, not a delivery formatImageMagick-
OpenEXR
.exrOpenEXRVFX and compositing with full brightness rangevery large, specialisedImageMagick-
Radiance HDR
.hdrRadiance HDRHDR lighting and environment mapsnot a general photo formatImageMagick-
DirectDraw Surface
.ddsDirectDraw Surfacegame textures with GPU compressionbuilt for real-time 3DImageMagick-
Targa
.tgaTargagame and 3D pipelines that expect TGARLE at most; largeImageMagick-
JPEG 2000
.jp2JPEG 2000medical and archive imagingniche support outside those fieldsImageMagick-
Stereo JPEG
.jpsStereo JPEGside-by-side 3D photosa JPEG variant for stereo pairsImageMagick-
Portable float map
.pfmPortable float mapHDR intermediates in toolchainsuncompressed float dataImageMagick-
FITS
.ftsFITSastronomy and science dataspecialisedImageMagick-
TIFF (.tif)
.tifTIFF (.tif)print, scans, master files you will edit againlarge; not for the webImageMagick-
Phone photos & JPEG names7 formats
.7 formats
HEIC
.heicHEICApple photos, about half JPEG sizeopened here; no HEIC encoder in the browser or this ImageMagick buildopens only-
HEIF
.heifHEIFefficient photo storagethe container behind HEICopens only-
JPEG (.jpeg)
.jpegJPEG (.jpeg)photos and web images where size beats perfect fidelitydrops detail you can’t easily see; bad for logos and textbrowser-
JPEG (.jpe)
.jpeJPEG (.jpe)photos and web images where size beats perfect fidelitydrops detail you can’t easily see; bad for logos and textImageMagick-
JFIF
.jfifJFIFphotos and web images where size beats perfect fidelitydrops detail you can’t easily see; bad for logos and textImageMagick-
JPEG (.jfi)
.jfiJPEG (.jfi)photos and web images where size beats perfect fidelitydrops detail you can’t easily see; bad for logos and textImageMagick-
JPEG (.jif)
.jifJPEG (.jif)photos and web images where size beats perfect fidelitydrops detail you can’t easily see; bad for logos and textImageMagick-
Windows & icons3 formats
.3 formats
BMP
.bmpBMPonly where an app demands raw BMPlittle or no compressionImageMagick-
ICO
.icoICOfavicons and app icons in several sizesbuilt for icons, not general imagesImageMagick-
Cursor
.curCursorcustom mouse cursorsan icon variantImageMagick-
Unix & X117 formats
.7 formats
X PixMap
.xpmX PixMapsimple X11 iconslegacy, text-basedImageMagick-
X BitMap
.xbmX BitMap1-bit X11 iconsblack and white onlyImageMagick-
X Window dump
.xwdX Window dumpX11 screen dumpsuncompressedImageMagick-
XV thumbnail
.xvXV thumbnailxv viewer thumbnailsopens only-
Sun Raster
.sunSun Rasterlegacy Sun workstation filesRLE at mostImageMagick-
SGI
.sgiSGIlegacy SGI filesRLE compressedImageMagick-
Sun Raster (.ras)
.rasSun Raster (.ras)legacy Unix raster fileslegacyImageMagick-
Netpbm & raw pixels12 formats
.12 formats
Portable pixmap
.ppmPortable pixmapsimple uncompressed intermediatesno compressionImageMagick-
Portable bitmap
.pbmPortable bitmap1-bit black-and-white imagesmonochrome onlyImageMagick-
Portable graymap
.pgmPortable graymapgreyscale intermediatesdrops colourImageMagick-
Portable anymap
.pnmPortable anymapthe generic portable anymapumbrella for PPM/PGM/PBMImageMagick-
Portable arbitrary map
.pamPortable arbitrary mapuncompressed images with alphano compressionImageMagick-
Raw RGB
.rgbRaw RGBbare RGB bytes; size must be knownopens only-
Raw pixels
.rawRaw pixelsunprocessed sensor capturesneeds the size to readopens only-
Raw RGBA
.rgbaRaw RGBAraw pixels with alphaopens only-
Raw RGBO
.rgboRaw RGBOraw RGB plus opacityopens only-
LEGO RGF
.rgfLEGO RGFLEGO Mindstorms 1-bitopens only-
Raw YUV
.yuvRaw YUVplanar video-style pixelsopens only-
Packed UYVY
.uyvyPacked UYVYYUV 4:2:2 capture dataopens only-
Legacy11 formats
.11 formats
PCX
.pcxPCXDOS-era graphicsRLE compressedImageMagick-
PICT
.pictPICTclassic Mac graphicsobsoleteImageMagick-
PICT (.pct)
.pctPICT (.pct)classic Mac graphicsobsoleteImageMagick-
Kodak Photo CD
.pcdKodak Photo CD1990s CD scansopens only-
Palm database
.pdbPalm databasePalm OS imagesobsoleteImageMagick-
Palm bitmap
.palmPalm bitmapPalm OS bitmapsobsoleteImageMagick-
Sixel
.sixelSixelimages in a compatible terminalnicheImageMagick-
Sixel (.six)
.sixSixel (.six)images in a compatible terminalnicheImageMagick-
Slow-scan TV
.hrzSlow-scan TVslow-scan TV framesalways 256 × 240ImageMagick-
Personal icon
.piconPersonal icontiny personal iconsresized to 48 px wideImageMagick-
Over-the-air bitmap
.otbOver-the-air bitmapold mobile monochrome icons1-bitImageMagick-
Specialised9 formats
.9 formats
VIPS
.vipsVIPSfast libvips intermediatestoolchain-specificImageMagick-
VIFF
.viffVIFFlegacy scientific visualisationobsoleteImageMagick-
MNG
.mngMNGlegacy PNG animationreplaced by APNG and WebPImageMagick-
MTV
.mtvMTVray-tracer outputobsoleteImageMagick-
Wireless bitmap
.wbmpWireless bitmapvery old WAP pages1-bit, obsoleteImageMagick-
PGX
.pgxPGXJPEG 2000 codec testingspecialisedImageMagick-
PAL
.palPALraw 4:2:2 YUVopens only-
Colour map
.mapColour mappalette plus indicesopens only-
IPLab
.iplIPLabIPLab scientific imagesobsoleteImageMagick-
Camera RAW2 formats
.2 formats
Digital Negative
.dngDigital Negativea standard camera RAW archiveread here, not writtenopens only-
Nikon RAW
.nefNikon RAWNikon camera negativesread here, not writtenopens only-