Вот в чем проблема: слишком много раз мне приходится предоставлять личные документы для любых целей (администрация, финансовые учреждения и т. д.), и со временем я устаю от неправомерного использования копий этих документов.
Ну, самое меньшее, что я могу сделать, это добавить водяной знак на эти копии документов. Конечно, есть несколько способов сделать это: вы можете использовать приложения для редактирования фотографий, платные или бесплатные. Для этого также есть онлайн-инструменты (которые, возможно, вызывают больше проблем с конфиденциальностью). Все это альтернативы, но мне пришла в голову блестящая идея кропотливо создать собственное приложение Python для этой цели, потому что…
- Я знаю Питон.
- К сожалению, я недостаточно хорошо знаю C++, C# или JS.
- Почему нет.
Итак, какие важные пакеты я использую?
- PySide6 — это, по сути, реализация Qt для Python, и ее легко использовать. Существует много пакетов с графическим интерфейсом для Python, но я считаю Qt самым простым с хорошей документацией.
- PIL, какую еще библиотеку изображений я могу использовать на Python? Серьезно, я понятия не имею.
Я не буду подробно описывать, что я сделал, но вы можете проверить сам код. Однако есть несколько проблем, которые я должен решить:
- Я использую класс Logger() для обработки внутреннего ведения журнала приложений, который виден в нижней левой части. Это намного лучше, чем вести журнал самостоятельно.
- Я хотел, чтобы Qt GUI использовал темный режим, стиль которого я нашел здесь: https://stackoverflow.com/questions/48256772/dark-theme-for-qt-widgets
- Я использовал объекты QtSql Qt и functino для обработки списка пакетных файлов (добавление файла, удаление файла и т. д.), вам потребуется базовое понимание SQL, но он достаточно интуитивно понятен для использования.
- Мне пришлось сделать деформацию изображения на текстовом изображении Watermark, о чем я узнаю из этого ресурса: https://www.pythoninformer.com/python-libraries/pillow/imageops-deforming/
- Наконец, есть значки пользовательского интерфейса, которые я получил из значков Material Design от Google https://github.com/google/material-design-icons.
Конечный результат:
Проверьте это на GitHub: https://github.com/AditiaTri/Experimental-Watermarker
Само приложение состоит из одного окна. Основной рабочий процесс выглядит следующим образом:
(Примечание: проверяйте код и используйте это приложение на свой страх и риск. Программное обеспечение предоставляется как есть, без каких-либо гарантий.):
- Добавьте файл в список пакетных файлов с помощью кнопки «+».
- Измените настройки водяного знака в разделе «Настройки водяного знака».
- Если вам нужен предварительный просмотр, установите флажок «Автоматический предварительный просмотр постобработанного изображения». Если честно, то не полностью автоматический. Вам нужно снять / проверить его каждый раз, когда вы меняете настройки. Он автоматически обновляется, если вы меняете выбор файла в списке.
- Вы можете масштабировать изображения с помощью горизонтального ползунка и панорамировать с помощью ползунков изображения.
- Выберите, следует ли выводить файл в тот же каталог или нет, в разделе «Сохранение настроек».
- ВНИМАНИЕ: будьте осторожны с настройкой «Автоматическая перезапись существующих файлов».
- Нажмите «Сохранить» и убедитесь, что файлы были созданы в нужном каталоге.
В целом, это было для меня полезным упражнением, тем более что теперь я научился использовать PySide6 и PIL, которых более чем достаточно для этого упражнения.
Не стесняйтесь, если у вас есть какие-либо вопросы или отзывы!