Делюсь скриптом на Python под Windows для изменения размера изображений, до указанного размера. Делал под свои задачи, поэтому функционал имеет некоторую ограниченность. Скрипт доступен на Github, и вы можете использовать его в своих проектах и изменять функционал под ваши задачи.
Сам скрипт не представляет ничего сверх выдающегося и в нем нет ничего нового, кроме того, что в нем принципиально сделан интерфейс (GUI) с одной кнопкой. Использовать скрипт можно как через командную строку Windows (CMD), так и собрав скрипт в EXE файл, например через pyinstaller.
pyinstaller resizer.py --noconsole --onefile --icon=resizer.ico
В комплекте со скриптом, идет и иконки в формате .ico и исходник в формате .svg, так что при необходимости, ничего отдельно вам искать не надо, все уже есть, а код по возможности прокомментировал, чтобы было понятнее и удобнее.
Общий вид окна выбора файла
Общий принцип работы
После запуска скрипта, открывается окно с одной единственной кнопкой, нажав на которую вам будет предложено выбрать файл изображения. После выбора вами нужного изображения, скрипт проверяет расширение файла, разделяет путь к файлу от его названия и расширения. Затем идет изменение разрешения файла, до указанных в настройках размеров, после чего генерируется новое название файла, которое добавляется к имеющемуся, после чего изображение сохраняется в той же папке, где и хранится оригинал, а вы получается уведомление об успешном изменении размеров. Новый файл лежит в той же папке, что и оригинал.
Оригинал при этом остается нетронутым, а новое название позволяет быстрее найти новый файл среди уже имеющихся. К текущему названию файла, добавляется случайная комбинация символов и новый размер файла. Например оригинальное название изображения 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
С другой стороны, для подобных ситуаций приводятся ссылки на исходный код, который открыт для просмотра и изучения. А так же доступны инструкции, по которым вы можете сделать все сами 😉
К этой записи нет комментарий. Ваш будет первым!