Oxipng is a command-line utility for reducing the size of PNG images without changing their rendered appearance. It is designed to combine strong compression with practical performance, using multiple threads to evaluate compression options and process several files in parallel.
Rather than simply recompressing the existing image data, Oxipng can test different PNG filters, colour types and bit depths before retaining the smallest result it finds. It can work on individual files or recursively traverse directory trees, and it can preserve file permissions and timestamps when required.
This is free and open source software.
Key Features
- Uses multiple threads for compression trials and parallel file processing.
- Provides a range of optimisation presets, from fast processing to maximum compression.
- Can recursively process PNG and APNG files in directory trees.
- Tests PNG filtering strategies including Sub, Up, Average, Paeth, entropy and brute-force approaches.
- Can reduce bit depth, change colour type, convert to indexed colour and simplify greyscale images when this can be done safely.
- Offers safe, complete or selective stripping of non-critical PNG metadata chunks.
- Supports visually lossless alpha optimisation by changing hidden colour data in fully transparent pixels.
- Can use Zopfli for slower but potentially stronger DEFLATE compression.
- Includes dry-run and JSON output modes for scripting and benchmarking.
- Supports standard input and standard output for use in shell pipelines.
- Can preserve file permissions and timestamps.
- Provides controls for CPU usage, memory-intensive inputs and processing time.
- Offers limited APNG optimisation, including refiltering and recompression of frames.
- Can be used as a Rust library as well as from the command line.
Website: github.com/oxipng/oxipng
Support:
Developer: Joshua Holmer
License: MIT License
Oxipng is written in Rust. Learn Rust with our recommended free books and free tutorials.
Related Software
| Console Based Image Compression Tools | |
|---|---|
| MozJPEG | Mozilla JPEG Encoder Project |
| pngquant | Utility and a library for lossy compression of PNG images |
| SVGO | Node.js library and command-line application for optimizing SVG files |
| Oxipng | Multithreaded PNG optimizer, forked from Optipng |
| libjxl | Reference implementation of JPEG XL |
| libjpeg-turbo | JPEG image codec |
| QOI | The Quite OK Image Format |
| YOGA | Yummy Optimizer for Gorgeous Assets |
| pngcrush | Optimizer for PNG files |
| jpegoptim | Optimize JPEG files. Lossless and lossy compression available |
| OptiPNG | Advanced PNG optimizer |
| ECT | Fast and effective C++ file optimizer |
| Crunch | Lossy PNG image file optimization |
| zopflipng | PNG optimisation tool using zopfli |
| JPEG Archive | Utilities for archive JPEGs for long term storage |
| cavif | Convert PNG and JPEG images to space-saving AVIF format |
| optimizt | CLI image optimization tool |
| Flaca | Losslessly compress GIF, JPEG and PNG images from the terminal |
| picopt | Multi format lossless image optimize |
| tinifier | CLI tool for compressing images using the TinyPNG API |
Read our verdict in the software roundup.
Explore our carefully curated directory of recommended free and open source software, covering every major software category.The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more. Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form. |


Please read our Comment Policy before commenting.