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

Ну, самое меньшее, что я могу сделать, это добавить водяной знак на эти копии документов. Конечно, есть несколько способов сделать это: вы можете использовать приложения для редактирования фотографий, платные или бесплатные. Для этого также есть онлайн-инструменты (которые, возможно, вызывают больше проблем с конфиденциальностью). Все это альтернативы, но мне пришла в голову блестящая идея кропотливо создать собственное приложение Python для этой цели, потому что…

  1. Я знаю Питон.
  2. К сожалению, я недостаточно хорошо знаю C++, C# или JS.
  3. Почему нет.

Итак, какие важные пакеты я использую?

  1. PySide6 — это, по сути, реализация Qt для Python, и ее легко использовать. Существует много пакетов с графическим интерфейсом для Python, но я считаю Qt самым простым с хорошей документацией.
  2. 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

Само приложение состоит из одного окна. Основной рабочий процесс выглядит следующим образом:

(Примечание: проверяйте код и используйте это приложение на свой страх и риск. Программное обеспечение предоставляется как есть, без каких-либо гарантий.):

  1. Добавьте файл в список пакетных файлов с помощью кнопки «+».
  2. Измените настройки водяного знака в разделе «Настройки водяного знака».
  3. Если вам нужен предварительный просмотр, установите флажок «Автоматический предварительный просмотр постобработанного изображения». Если честно, то не полностью автоматический. Вам нужно снять / проверить его каждый раз, когда вы меняете настройки. Он автоматически обновляется, если вы меняете выбор файла в списке.
  4. Вы можете масштабировать изображения с помощью горизонтального ползунка и панорамировать с помощью ползунков изображения.
  5. Выберите, следует ли выводить файл в тот же каталог или нет, в разделе «Сохранение настроек».
  6. ВНИМАНИЕ: будьте осторожны с настройкой «Автоматическая перезапись существующих файлов».
  7. Нажмите «Сохранить» и убедитесь, что файлы были созданы в нужном каталоге.

В целом, это было для меня полезным упражнением, тем более что теперь я научился использовать PySide6 и PIL, которых более чем достаточно для этого упражнения.

Не стесняйтесь, если у вас есть какие-либо вопросы или отзывы!