Package: yoga-image-optimizer
YOGA Image Optimizeris a graphical user interface forYOGA Imagethatconverts and optimizesthe size ofJPEG, PNG and WebPimage files.RequirementsPyCairoPyGObject ≥ 3.36Python ≥ 3.7YOGA ≥ 1.1.0InstallationArch LinuxThe package is available on AUR (yoga-image-optimizer):https://aur.archlinux.org/packages/yoga-image-optimizerFlatpak (Linux)A Flatpak package is available on Flathub. This is currently the simplest way to install YOGA Image Optimizer on all major Linux distributions:https://flathub.org/apps/details/org.flozz.yoga-image-optimizerLinux (PyPI)You must install the dependencies on your system first. It can be done via the following command on Debian and Ubuntu:sudo apt install git build-essential python3 python3-dev python3-pip libgirepository1.0-dev libcairo2-dev pkg-config gir1.2-gtk-3.0Then install YOGA Image Optimizer with pip:sudo pip3 install yoga-image-optimizerNOTE:Installing from PyPI will not install.desktopfile and manual page; you will not be able to run the software from your graphical app menu (GNOME Shell etc.).Linux (source)You must install the dependencies on your system first. It can be done via the following command on Debian and Ubuntu:sudo apt install git build-essential python3 python3-dev python3-pip libgirepository1.0-dev libcairo2-dev pkg-config gir1.2-gtk-3.0Then clone this repository and navigate to it:git clone https://github.com/flozz/yoga-image-optimizer.git
cd yoga-image-optimizerThen install YOGA Image Optimizer using pip:sudo pip3 install .Finally, you can install the.desktopfile, icons and manual page using the following command:sudo ./linuxpkg/copy-data.sh /usrWindowsDownload either the portable .zip version or the Windows installer from the releases page:https://github.com/flozz/yoga-image-optimizer/releasesUsageJust type the following command to run YOGA Image Optimizer:yoga-image-optimizerYou can also give some image files to open:yoga-image-optimizer  image1.png  image2.jpegNOTE:If you installed YOGA Image Optimizer from Flathub, you will have to run the following command instead:flatpak run org.flozz.yoga-image-optimizer  image1.png  image2.jpegContributingQuestionsIf you have any question, you can:Open an issueon GitHubAsk on Discord(I am not always available to chat, but I try to answer to everyone)BugsPleaseopen an issueon GitHub with as much information as possible if you found a bug:Your operating system / Linux distribution (and its version)How you installed the softwareAll the logs and message outputted by the softwareetc.Pull requestsPlease considerfiling a bugbefore starting to work on a new feature; it will allow us to discuss the best way to do it. It is obviously unnecessary if you just want to fix a typo or small errors in the code.Please note that your code must follow the coding style defined by thepep8and pass tests.BlackandFlake8are used on this project to enforce the coding style.Translate YOGA Image OptimizerYou can help translating it if the software is not available on your language.To translate YOGA Image Optimizer, you can submit your translations creating a pull request on GitHub.Do not forget to add your name as the translation of thetranslator-creditskey (one name per line, email is optional):#: yoga_image_optimizer/about_dialog.py:38
msgid "translator-credits"
msgstr ""
"John DOE\n"
"Other TRANSLATOR <foobar@example.org>\n"Run the testsYou must installNoxfirst:pip3 install noxThen you can check for lint error:nox --session lintor run the tests:nox --session testYou can use following commands to run the tests only on a certain Python version (the corresponding Python interpreter must be installed on your machine):nox --session test-3.7
nox --session test-3.8
nox --session test-3.9
nox --session test-3.10
nox --session test-3.11You can also fix coding style errors automatically with:nox -s black_fixBuild, extract or update build translationsYou must installNoxfirst:pip3 install noxTo extract messages and update locales, run:nox --session locales_updateTo compile locales, run:nox --session locales_compileNOTE:you must havemsgfmt,msgmergeandxgettextexecutable installed on your system to run the above commands. It can be done via the following command on Debian and Ubuntu:sudo apt install gettextSupport this projectWant to support this project?☕️ Buy me a coffee💵️ Give me a tip on PayPal❤️ Sponsor me on GitHubChangelog[NEXT](changes onmaster, but not released yet):Nothing yet ;)v1.2.3:Fixed crash when the system local cannot be determined (@flozz, #43)v1.2.2:Bug fix:Fixed an issue that prevents the update of the view with older Pango
versions (@flozz, #41)Translations:Updated Italian translation (@albanobattistella, #39)Updated Spanish translation (@haggen88, #42)v1.2.1:Fixes / improvements:Flatpak: use the real user cache, not the one of the Flatpak application
(@flozz)Added Python 3.11 support (@flozz)Translations:Added Brazilian Portuguese translation (@Kazevic, #36)Completed Dutch translation (@Vistaus, #34)v1.2.0:Interface / user experience:More compact and less bloated interface (#17)Allow opening input images in the default image viewer by double-clicking
themAsynchronous generation and loading of thumbnails to not freeze the
interface when importing a lot of images (#26)Sped up thumbnail loading on Linux by using already generated thumbnails
from the shared cacheSped up thumbnail generation using BOX sampling instead of LANCZOSShow a warning icon if the output image is larger than the input oneFixes / improvements:Fixed a crash when generating thumbnails for JPEGs with an invalid
orientation EXIF tag (#29)Fixed a crash on the image import process when generating a broken
image’s thumbnail (#27)Fixed a crash on the optimization batch if an error occurs when
optimizing an image (#27)Fixed inverted width and height with rotated JPEGsFixed issues related toconcurrent.futureson Python 3.7 and 3.8
(#32)Updated the code to not use deprecated constants on newer Pillow versionsNew translations:Dutch (incomplete) (@Vistaus, #25)German (Jürgen Benvenuti)v1.1.2:New translations:RussianSpanishUpdated translation:Turkishv1.1.1:Fixed the abnormal amount of processes created and not cleaned when
starting an optimization (#13)v1.1.0:YOGAupdated to v1.1.0:Honor the JPEG orientation EXIF tagJPEG optimization improved: up to 7.3% of additional size reduction since
previous versionYOGA can no more output a PNG larger than the input one when performing
a PNG to PNG optimizationAdded a setting window:Number of threads used to optimize imagesSetting the default output locations / name or pattern of output filesTheme selection / dark theme preference“Optimize” and “Stop” buttons behaviour improved:The “Stop” button now stops the running optimizations, not just the
pending onesDisplay a “Canceled” status on non-optimized image while the “Stop”
button is clickedDo not optimize again images that have already been optimizedAllow to resize images (downscale only, preserve ratio)Multiselection: multiple files can now be selected and their parameters can
be edited all at once (multiselection)Windows specific changes:Use the Adwaita theme by default on Windows; the Windows10 GTK theme
looks buggyFixes / improvements:Do not allow to remove images with the<Del>key while an
optimization is in progressFixed image previews; no more ugly thumbnails with indexed imagesImage previews now honor the JPEG orientation EXIF tagUpdated translations:FrenchItalian (partial)OccitanTurkish (partial)Note for packagers:YOGA ≥ 1.1.0 is now neededYOGA v1.1.0 has a new dependency:mozjpeg-lossless-optimizationv1.0.1:Fixed PyPI packagesNOTE:No new version for Windows; nothing changedv1.0.0:Fixed[-]button not removing the chosen imageUpdated site URLv0.99.2 (beta):Fixed package data not installed while installing with pip (#3)NOTE:No new version for Windows; nothing changedv0.99.1 (beta):Fixed site URL in setup.pyFixed version numberv0.99.0 (beta):Initial releaseLinux and Windows supportOptimizes JPEG, PNG and WebP image formats