IMGCrush was named after Pngcrush, a similar program devoted to optimization of PNG files.
It works by trying to save optimized image in JPG, PNG and GIF formats with various settings and then choosing the image that will fit user specified requirements best.
Like other image compressors, IMGCrush compresses image files to achieve the smallest possible file size. Unlike any other image compressor (at the time of writing), IMGCrush can also compress files using multiple image formats (GIF, JPG and PNG) which allows it to, for for example achieve best possible file size with at least user specified minimum image quality, or best quality with at most user specified size. At the moment, IMGCrush is quite slow, however, this should improve in the future. IMGCrush can also compress whole folders of images.
IMGCrush_GUI is a simple Tkinter Graphics User Interface using a minimal subset of IMGCrush options. In the future it should be replaced with a full-blown GTK or Qt GUI.
IMGCrush is released under the Simplified BSD License.
Here are some key features of "IMGCrush":
· Can output files as GIF, JPG or PNG depending on which format provides best result.
· Can compress directories of images, even recursively if user specifies it.
· Can compress files in separate processes.
· Can compress files to have (at least) user specified quality.
· Can compress files to have (at most) user specified size (can be specified in % of original file size, bytes/kiB/MiB/GiB, bits per pixel)
· User can specify how thorough compression should be (slower compression results in better size/quality
What's New in This Release: [ read full changelog ]
· Added option to process directories recursively,
· Added support for various GIF bit depths.
· Added support for grayscale JPG.
· Added multiprocessing. JPG, PNG and GIF file generation now runs in separate processing, improving speed significantly on multicore machines. User can control multiprocessing through the --prc-mult option (see --help). Batches of files can also be divided to multiple processes, improving speed further.
· Added an automated test suite to check for most obvious bugs.
· Added benchmark and profiling scripts. Handling more input/output errors now.
· Removed stats module due to it being a complete mess.
· Removed --fill and --bg-color options, deprecated other resizing options.
Speed improved significantly in big file benchmark but worsened somehwhat in many files benchmark:
Pentium Dual Core 1.73 GHz 4GB RAM:
benchmark : 0.3.2: 0.4.0:
· many_files: 618.04s 900.13s +45.64%
· big_file : 1215.92s 590.10s -51.47%
· total speedup: 18.74%
· IMGCrush now detects if temporary directory already exists and creates new one if it does, so multiple instances of the program can run at the same time.
· Fixed bugs with handling of filenames with spaces.
· Fixed a bug that sometimes resulted in suboptimal output (especially in lossless quality mode)
· Cleaned up and documented a lot of code. Moved from ImageMagick to GraphicsMagick dut to its better speed.