savepng is a fast PNG image compression routine that outperforms MatLab's built-in imwrite


Updated 26 Nov 2016

From GitHub

View License on GitHub

savepng is a very efficient PNG image compression MEX-routine that outperforms MatLab's built-in imwrite in compression times and produced file sizes. For a typical figure size at the default compression level, savepng is ~5.8 times faster, with file size only 17% bigger than imwrite. At the highest compression level, savepng is still ~2.8 times faster, with produced file sizes 15% smaller.
PNG encoding is based on public-domain MINIZ library.


* CDATA -- is a standard MatLab image m-by-n-by-3 matrix. This matrix can be obtained using getframe command or, for a faster implementation, undocumented hardcopy command
* filename -- file name of the image to write. Don't forget to add .png to the file name.
* Compression -- Optional input argument. This argument takes on a number between 0 and 10 controlling the amount of compression to try to achieve with PNG file. 0 implies no compresson, fastest option. 10 implies the most amount of compression, slowest option. Default value is 4.

Up-to-date version, a more detailed help, bugs/issues tracking can all be found here:

Cite As

Stefan Slonevskiy (2023). savepng (, GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2011b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes

Added support for alpha channel
- fixed compiler errors, updated to latest miniz library, linked to GitHub

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.