Встала задача все изображения в папке сконвертировать в webp, но нормального конвертера я не нашел. В интернете есть конвертеры, но они сжимают на своих правилах или размер изображения ограничен в пикселях.
Поэтому я решил поискать конвертер официального распространителя.
Скачал и с указанными параметрами конвертер через командную строку сделал то, что мне требовалось и с условиями, которые я ему задал сам.
Осталось сделать автоматизацию, чтобы Python взял картинки из нужной папочки и прогнал в заданных условиях через конвертер. Итоговый вариант положил в другую папочку.
Цель - максимально-простой конвертер, который берет любой вид изображений. Не стал делать проверки на то, изображения это или нет, исключения ставить. Нужен был код в 10 строк для конвертации 500 000 заранее отфильтрованных изображений (у меня столько картинок из обслуживаемого сайта).
1. скачать официальный кодировщик в webp cwebp
2. из скачанного архива в папке bin достать файлик cwebp.exe
3. положить этот файлик в рабочую папочку скрипта
4. создать в рабочей папке каталог in - наполнить картинками
5. создать в рабочей папке каталог out - сюда упадут webp
Проверить что все как-то так:
А так выглядит содержимое моего conv.py:
1-2 строки - импорт родных модулей python
4 - степень сжатия итогового файла
5-8 - рабочий цикл, в котором:
6 - наименование картинки разбивается по точке и берется первая часть (имя до точки)
7 - команда, которая будет вызвана из Python.
Сама команда оформлена в ввиде f-строки (r- игнорировать ошибки PEP, воспринимать как строку). Параметры вы можете добавлять сами, если посчитаете нужным.
а 8 строка вызывает из питона внешнее приложение (указано в f-строке) с параметрами, которые идут после.
Надеюсь в определенный момент изучения языка программирования этот пост вам пригодится.
Подписывайтесь, ставьте лайки. Я очень надеюсь на долгосрочное развитие этого канала. Мне важен любой комментарий, совет или наставление. Мира вам :-)