A desktop app written in Python, that exposes and unlocks the full power of Optimize Images in a nice graphical user interface, to help you reduce the file size of images.
Optimize Images X and its CLI companion optimize-images
offer some useful
features that are not always present in a single package, like batch downsizing
of images within a folder (and recursively though its
subfolders) based on specified maximum width and/or height.
If you were just looking for the original (and slightly faster) command-line user interface (CLI) version of this application, it's a separate project: Optimize Images.
To install and run this application, you need to have a working Python 3.7+ installation. We try to keep the external dependencies at a minimum, in order to keep compatibility with different environments. At this moment, we require:
- optimize-images==1.5.0
- Pillow==8.2.0
- piexif==1.1.3
- watchdog==2.1.2
At this time we don't have a simple installer (but that would be cool), and no
launcher is made available outside of the command-line shell. As it stands
right now, it is required to have Python and its shell command pip
on your
system. You can use pip
to install the most recent release from the PyPI
repository:
python3.9 -m pip install optimize-images-x
It can be a good idea to keep this kind of Python apps isolated in their own virtual environments, so a useful tool is a third-party tool named pipx. Instead of the command indicated above you could then use this one:
pipx install optimize-images-x
After that, to run the application, just type optimize-images-x
in the
Terminal and press Enter
.
It should also run ok in Python 3.10, but please notice there is a nasty
visual glitch related to tcl/tk that makes image buttons look bad, when
using the Aqua
theme. If you find that issue, just go to settings and
switch to another theme.
If you are able to swap Pillow with the faster version
Pillow-SIMD, you should be able
to get a considerably faster speed. For that reason, we provide, as a
friendly courtesy, an optional shell script (replace_pillow__macOS.sh
) to
replace Pillow with the faster Pillow-SIMD on macOS. Please notice, however,
that it usually requires a compilation step, and it was not throughly tested
by us, so your mileage may vary.
To start compressing images, just add one or more files, or a folder. The process starts as soon as the files are added to the list.
After launching the application for the first time, make sure all settings are configured as desired. The application's default settings are similar to the ones in Optimize Images. Whenever you change a setting it is applied immediately, and it's saved in the app's database, so that it will be can be used again the next time you run the app, without any need to go through all the settings.
In simple terms, always make sure you have configured Optimize Images X as you want it, but if you just want to use the same settings from last time, just add images.
If you have used Optimize Images before, you probably already know what options are available. If not, please take a few minutes to take a look at the Preferences window and its tabs. You will find a description of each option on the original documentation for the command-line based Optimize Images.
You can choose the graphical user interface theme in the More…
tab of the
Settings Window. The list of available themes will vary depending on your
operating system, as well as Python and TK/tcl versions. Just click each one of
the radio buttons, and it will be appplied immediately as you click.
One important feature of Optimize Images X is its opinionated choice of default
app and task settings, which have been defined with the web in mind and are
probably just fine when you just want to apply some compression to the final
images to be deployed with you website. So, being able to restore them is also
possible. You will find the Reset all settings
button in the More…
tab of
the Settings Window.
Restoring default settings requires that the application is restarted, which is done automatically. So, before resetting, you should make sure you there are no more tasks pending or being processed.
Its worth noting that this process will also reset previous choices regarding confirmation dialog boxes, so they will be shown up again even if you had chosen not to see them.
DISCLAIMER:
Please note that the operation is done DESTRUCTIVELY, by replacing the
original files with the processed ones. You definitely should duplicate the
source file or folder before using this utility, in order to be able to
recover any eventual damaged files or any resulting images that don't have the
desired quality.
Please let me know, by opening a new issue, or a pull request.