разделы:

Скрипт на Python для ресайза изображения

Делюсь скриптом на Python под Windows для изменения размера изображений, до указанного размера. Делал под свои задачи, поэтому функционал имеет некоторую ограниченность. Скрипт доступен на Github, и вы можете использовать его в своих проектах и изменять функционал под ваши задачи.

Сам скрипт не представляет ничего сверх выдающегося и в нем нет ничего нового, кроме того, что в нем принципиально сделан интерфейс (GUI) с одной кнопкой. Использовать скрипт можно как через командную строку Windows (CMD), так и собрав скрипт в EXE файл, например через pyinstaller.

pyinstaller resizer.py --noconsole --onefile --icon=resizer.ico

В комплекте со скриптом, идет и иконки в формате .ico и исходник в формате .svg, так что при необходимости, ничего отдельно вам искать не надо, все уже есть, а код по возможности прокомментировал, чтобы было понятнее и удобнее.

Общий вид окна выбора файла

Скрипт на Python для ресайза изображения

Общий принцип работы

Скрипт на Python для ресайза изображения

После запуска скрипта, открывается окно с одной единственной кнопкой, нажав на которую вам будет предложено выбрать файл изображения. После выбора вами нужного изображения, скрипт проверяет расширение файла, разделяет путь к файлу от его названия и расширения. Затем идет изменение разрешения файла, до указанных в настройках размеров, после чего генерируется новое название файла, которое добавляется к имеющемуся, после чего изображение сохраняется в той же папке, где и хранится оригинал, а вы получается уведомление об успешном изменении размеров. Новый файл лежит в той же папке, что и оригинал.

Оригинал при этом остается нетронутым, а новое название позволяет быстрее найти новый файл среди уже имеющихся. К текущему названию файла, добавляется случайная комбинация символов и новый размер файла. Например оригинальное название изображения 1622448937128.jpg, новое название будет в духе: uYKOyFJdWbjUqkxl_1622448937128_1920.jpg

Все настройки, которых всего два пункта, доступны в строках 15 и 16.

factor = 2 # степень улучшения изображения
basewidth = 1920 # до какого размеры уменьшаем

С каждым из пунктов можно поиграть, они подбираются индивидуально под ваши потребности. Можно выставить необходимый размер «basewidth», до которого необходимо уменьшать изображения и сохранив изменения играя со строкой «factor» увеличивая или уменьшая значения, а затем проверяя при каком из указанных вами значений, качество изображения после обработки, вас полностью удовлетворяет. А можно оставить все как есть.

Скрипт в первую очередь делался для себя и под свои нужды, поэтому публикуется в состоянии как есть (AS IS). Вы при необходимости можете изменить его под себя, например добавить мультивыбор файлов, добавить опции выбора размера и степени улучшения, степень сжатия, возможность выбора места сохранения, варианты переименования.

Скачать код с Github https://github.com/blyamur/Python-Resize-Image

UPD от 5.01.2022
https://stackoverflow.com/questions/43777106/program-made-with-pyinstaller-now-seen-as-a-trojan-horse-by-avg
https://www.reddit.com/r/Python/comments/hdci7k/pyinstaller_and_antivirus_software/
https://question-it.com/questions/329844/programma-sozdannaja-s-pomoschju-pyinstaller-teper-rassmatrivaetsja-avg-kak-trojanskij-kon
https://qna.habr.com/q/723649

Ни один из распространенных антивирусов ничего не детектирует, можно проверить самостоятельно.
https://www.virustotal.com/gui/home/upload

С другой стороны, для подобных ситуаций приводятся ссылки на исходный код, который открыт для просмотра и изучения. А так же доступны инструкции, по которым вы можете сделать все сами 😉