Tools: Report: Why Are Your PNG Files So Large?

Tools: Report: Why Are Your PNG Files So Large?

How to Make a PNG File Smaller (5 Methods That Work)

Method 1: Lossless PNG Optimization (Zero Quality Loss)

How It Works

Using Pixotter

Using OptiPNG (Command Line)

Expected Results

Method 2: Reduce the Color Palette

When This Works Well

When This Fails

Using pngquant (Command Line)

Expected Results

Method 3: Resize the Image

Quick Math

Using Pixotter

Using ImageMagick

When to Resize

Method 4: Strip Metadata

Using ImageMagick

Using exiftool

Method 5: Convert to a More Efficient Format

Using Pixotter

Choosing the Right Format

Decision Flowchart

Combining Methods for Maximum Reduction

Frequently Asked Questions

Can I make a PNG smaller without losing quality?

Why is my PNG file so big?

Should I convert my PNG to JPEG to save space?

What is the difference between this guide and the Compress PNG guide?

How do I reduce a PNG to a specific file size (like under 1 MB)?

Does reducing colors in a PNG always cause visible quality loss? Your PNG is too big. The upload form rejects it. The email bounces. The page loads slowly. And unlike JPEG, you cannot just drag a quality slider — PNG is lossless, so the standard "lower the quality" approach does not apply the same way. The good news: there are five reliable methods to reduce PNG file size, ranging from zero-quality-loss optimization to dramatic reductions through format conversion. Pick the one that fits your situation. This is the safest option. Lossless optimization reduces file size by improving how the PNG data is encoded — without changing a single pixel. PNG uses DEFLATE compression. Different encoders make different speed-vs-compression tradeoffs. The PNG exported from Photoshop, macOS Screenshot, or Windows Snipping Tool is usually compressed with the fastest (not smallest) settings. A dedicated optimizer re-encodes the same pixel data with better DEFLATE parameters. Pixotter applies lossless compression automatically. The output is pixel-identical to the input — you can verify by comparing them side-by-side. Typical savings: 20-50% for screenshots and graphics, 5-15% for photographs saved as PNG. OptiPNG 0.7.8 (zlib license) tries different filter and compression strategies to find the smallest lossless encoding. The -o5 flag sets a high optimization level (range: 0-7). PNG supports color depths from 1-bit (2 colors) to 48-bit (trillions of colors). Most PNGs use 24-bit or 32-bit color — but many images do not need that range. Reducing to an indexed palette (PNG-8, up to 256 colors) can dramatically cut file size. pngquant 3.0 (GPLv3) uses a median-cut quantization algorithm with Floyd-Steinberg dithering. The --quality=65-80 flag tells pngquant to find the sweet spot: if it cannot achieve quality 65 or above, it skips the file rather than producing a bad result. The most effective size reduction: make the image smaller. A 3000×2000 PNG has 6 million pixels. A 1500×1000 version has 1.5 million — 75% fewer pixels to store. Halving both dimensions reduces pixel count to 25% of the original. File size does not drop by exactly 75% (compression ratios vary), but the reduction is substantial. PNG files can contain chunks of non-image data: text comments, creation timestamps, ICC color profiles, software identifiers, and custom application data. These typically add 1-50 KB but can occasionally be larger. Stripping metadata is a small optimization — meaningful for tiny icons where every KB counts, negligible for large photographs. Combine it with lossless optimization for the best result. If the PNG does not need to stay as PNG (no transparency requirement, no lossless requirement for this particular use), converting to a smaller format produces the biggest size reduction. Working with vector graphics instead? → SVG files have their own optimization techniques — see our compress SVG guide for path simplification and metadata stripping. Need transparency? → WebP lossless (26% smaller than PNG, same quality, universal browser support) Do not need transparency, image is a photo? → JPEG at quality 80-85 (massive size reduction) Web delivery, maximum compression? → AVIF lossy (smallest possible file) Need to stay lossless but want smaller? → WebP lossless (always smaller than PNG) For detailed format comparisons, see PNG vs WebP, Best Image Format for Web, and What is PNG?. Most common mistake: Running a photograph as a PNG. A 12 MP photo saved as PNG can be 15-25 MB. The same photo as JPEG at quality 85 is 1-3 MB — with no visible quality difference. Check whether your image needs to be PNG at all before trying to optimize it. The methods above are not mutually exclusive. For maximum file size reduction, combine them: Example: A 3000×2000 screenshot PNG at 4.2 MB → crop to content area (2400×1600) → resize to 1200×800 → reduce to 128 colors → optimize → 180 KB. That is 96% smaller, and it still looks sharp on a blog or in a document. Yes. Lossless optimization (Method 1) reduces file size by improving the PNG encoding without changing any pixels. Typical savings are 20-50%. Tools: Pixotter, OptiPNG, or oxipng. The output is visually and mathematically identical to the input. PNG uses lossless compression, which preserves every pixel exactly. For photographs and complex images, lossless compression produces large files because there are few repeating patterns to compress. For screenshots and graphics with flat colors, PNG is efficient — but the files are still larger than lossy formats like JPEG. See How to Compress PNG for the technical details. If the image is a photograph without transparency, yes — JPEG at quality 80-85 will be 70-90% smaller with imperceptible quality difference. If the image has transparency, sharp text, or UI elements, keep it as PNG (or convert to WebP, which handles all of these). See JPG vs PNG for the full comparison. How to Compress PNG focuses on the compression techniques themselves — how DEFLATE works, lossless vs lossy PNG compression, and tool-specific settings. This guide focuses on the broader problem: "my PNG is too big, what are ALL my options?" — including resizing, cropping, format conversion, and metadata stripping, not just compression. There is no single setting that targets a specific file size because PNG compression ratios depend on image content. The approach: try lossless optimization first. If still too big, resize to smaller dimensions. If still too big, reduce colors. If nothing works within PNG, convert to JPEG or WebP and use a quality slider to find the target size. See How to Compress Image to 100KB and How to Compress Image to 1MB for target-size guides. Not always. Many screenshots and graphics use only 50-100 distinct colors despite being stored at 24-bit depth (16.7 million possible colors). Reducing to 256 colors changes nothing visible in these cases. The risk appears with photographs, gradients, and images with many subtle color variations — these show visible banding when quantized to 256 or fewer colors. Need to shrink hundreds of PNGs at once? See our bulk image compressor comparison for the best batch tools. Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Command

Copy

# Install -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install optipng # Ubuntu/Debian -weight: 500;">brew -weight: 500;">install optipng # macOS # Optimize (overwrites in place) optipng -o5 image.png # Batch optimize optipng -o5 *.png # Install -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install optipng # Ubuntu/Debian -weight: 500;">brew -weight: 500;">install optipng # macOS # Optimize (overwrites in place) optipng -o5 image.png # Batch optimize optipng -o5 *.png # Install -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install optipng # Ubuntu/Debian -weight: 500;">brew -weight: 500;">install optipng # macOS # Optimize (overwrites in place) optipng -o5 image.png # Batch optimize optipng -o5 *.png # Install -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install pngquant # Ubuntu/Debian -weight: 500;">brew -weight: 500;">install pngquant # macOS # Reduce to 256 colors (default) pngquant image.png --output compressed.png # Reduce to 128 colors (smaller file, more banding risk) pngquant 128 image.png --output compressed.png # Batch process pngquant --quality=65-80 *.png --ext .png --force # Install -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install pngquant # Ubuntu/Debian -weight: 500;">brew -weight: 500;">install pngquant # macOS # Reduce to 256 colors (default) pngquant image.png --output compressed.png # Reduce to 128 colors (smaller file, more banding risk) pngquant 128 image.png --output compressed.png # Batch process pngquant --quality=65-80 *.png --ext .png --force # Install -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install pngquant # Ubuntu/Debian -weight: 500;">brew -weight: 500;">install pngquant # macOS # Reduce to 256 colors (default) pngquant image.png --output compressed.png # Reduce to 128 colors (smaller file, more banding risk) pngquant 128 image.png --output compressed.png # Batch process pngquant --quality=65-80 *.png --ext .png --force # Resize to 50% of original dimensions magick input.png -resize 50% output.png # Resize to specific width (height auto-calculated) magick input.png -resize 800x output.png # Resize to fit within maximum dimensions magick input.png -resize 1200x800 output.png # Resize to 50% of original dimensions magick input.png -resize 50% output.png # Resize to specific width (height auto-calculated) magick input.png -resize 800x output.png # Resize to fit within maximum dimensions magick input.png -resize 1200x800 output.png # Resize to 50% of original dimensions magick input.png -resize 50% output.png # Resize to specific width (height auto-calculated) magick input.png -resize 800x output.png # Resize to fit within maximum dimensions magick input.png -resize 1200x800 output.png # Strip all metadata magick input.png -strip output.png # Strip all metadata magick input.png -strip output.png # Strip all metadata magick input.png -strip output.png # Remove all metadata (Perl, works on any OS) exiftool -all= image.png # Remove all metadata (Perl, works on any OS) exiftool -all= image.png # Remove all metadata (Perl, works on any OS) exiftool -all= image.png Is the PNG a photograph? ├── Yes → Convert to JPEG (quality 80) or WebP lossy │ Savings: 70-90% └── No → Does it need to stay PNG (transparency, lossless, compatibility)? ├── Yes → Lossless optimize first (20-50% savings) │ Still too big? → Reduce colors (if flat graphics) │ Still too big? → Resize to smaller dimensions └── No → Convert to WebP lossless (26% smaller, keeps transparency) Still too big? → WebP lossy at quality 80+ Is the PNG a photograph? ├── Yes → Convert to JPEG (quality 80) or WebP lossy │ Savings: 70-90% └── No → Does it need to stay PNG (transparency, lossless, compatibility)? ├── Yes → Lossless optimize first (20-50% savings) │ Still too big? → Reduce colors (if flat graphics) │ Still too big? → Resize to smaller dimensions └── No → Convert to WebP lossless (26% smaller, keeps transparency) Still too big? → WebP lossy at quality 80+ Is the PNG a photograph? ├── Yes → Convert to JPEG (quality 80) or WebP lossy │ Savings: 70-90% └── No → Does it need to stay PNG (transparency, lossless, compatibility)? ├── Yes → Lossless optimize first (20-50% savings) │ Still too big? → Reduce colors (if flat graphics) │ Still too big? → Resize to smaller dimensions └── No → Convert to WebP lossless (26% smaller, keeps transparency) Still too big? → WebP lossy at quality 80+ - Open pixotter.com/compress. - Drop your PNG file(s). - Download the optimized files. - Screenshots with flat colors and solid backgrounds - Logos and icons with limited color palettes - Diagrams, charts, and infographics - UI elements with consistent design system colors - Photographs (256 colors causes severe banding) - Images with smooth gradients (banding at color transitions) - Images with many similar but distinct colors - Open pixotter.com/resize. - Drop your PNG. - Enter the target dimensions or percentage. - Download the resized PNG. - The image is displayed at a smaller size than its actual dimensions (a 4000px image in a 600px blog column) - The image is for screen viewing, not printing (screens need far fewer pixels than print) - The image is a screenshot of a full desktop but only the application window matters — crop first, then resize - Open pixotter.com/convert. - Drop your PNG. - Select the output format (WebP recommended for most cases). - Crop unnecessary borders and whitespace - Resize to the smallest dimensions you actually need - Reduce colors (if the image has few colors and no gradients) - Lossless optimize (always — there is no downside) - Convert format (if PNG is not required)