sergkrumas / image_viewer

Open source Picasa Photo Viewer Clone supporting most image formats, AVIF, GIF and animated WEBP. PureRef Clone (named «Boards») included. [PyQt] [Windows]
GNU General Public License v3.0
3 stars 2 forks source link

[Russian] [PyQt] GIF/AnimatedWEBP/WEBP/SVG/PNG/JPG/JPEG/JFIF/ICO/BMP/SVG/TGA/TIF/AVIF/HEIF/HEIC/APNG Krumassan Image Viewer v0.90 for Windows by Sergei Krumas

Image Viewer разрабатывается на замену почившей в 2015м году Picasa Photo Viewer. Как и с моей недавней разработкой Oxxxy Screenshoter, кое-что взято за основу из оригинала и вдобавок поверх наворочено куча отсебятины. Поверх этого частично будет клонирован и интегрирован функционал программы PureRef (пюре).

Состояние проекта на сегодня

На данный момент документация ещё не готова и только CHANGELOG.md может пролить свет на процесс разработки.

Релиз планируется летом 2025 года. Ранее был указан 2024 год, но мне придётся довести до ума страницу Board (которая клонирует основные возможности PureRef), и вдобавок обойти питоновский GIL для устранения микрофризов в UI при загрузке файлов изображений.

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

Changelog и дальнейшие планы

Лицензия

Весь исходный код выпущен под GNU GPL Version 3

Иконка приложения

Идея для иконки позаимствована от иконки браузера Chromium, а цвета для неё взяты из иконки самой Picasa Photo Viewer.

Языки интерфейса

Требования

Поддерживаемые форматы файлов

Подробности можно узнать в коде статического метода is_interest_file.

Установка, запуск, краткое описание возможностей и что делать, когда приложуха падает

Установка

Сперва надо скачать Python отсюда и затем установить.

ВАЖНО: В процессе установки нужно обязательно прожать галочку около пункта "Add Python X.XX to PATH", иначе проблемы с установкой зависимостей придётся решать самостоятельно и вручную. Если вы пропустили эту галочку, то просто удалите Python и установите заново держа в памяти, что нужно установить галочку напротив "Add Python X.XX to PATH".

После установки Python нужно установить все зависимости запустив файл install_dependencies.bat двойным кликом. Появится консольное окно в котором будет отображаться ход процесса. После окончанчания процесса окно закрокется и Image Viewer будет готов для запуска.

Как запустить приложение

Если Python и зависимости были установлены, то двойной клик по файлу viewer.pyw запустит программу. Кликом в окне программы или перетаскиванием папки или изображения на окно можно начать просматривать изображения.

Регистрация VIEWER.PYW в качестве Windows-приложения

Чтобы VIEWER.PYW определился в Windows как приложение, нужно занести некоторые настройки в реестр Windows.

Что нужно сделать:

После этих несложных действий программу можно будет увидеть в контестном меню Проводника Windows для файлов-изображений в пункте меню "Открыть с помощью...", а в распахнувшемся подменю программа будет называться Krumassan Image Viewer. Вдобавок теперь будет возможно вручную выбрать Image Viewer как программу для просмотра по умолчанию в свойствах файлов изображений. К сожалению, нет способа автоматически задать Image Viewer приложением по умолчанию для просмотра всех типов изображений из-за предпринятых в Windows мер безопасности. К счастью, в папке test этого репозитория собраны все распространённые типы изображений, так что не придётся искать файлы всех типов у себя на компе, чтобы задать им для просмотра эту программу по умолчанию.

Короткое описание возможностей

Программа доступна в лайтовом (упрощённом) режиме и в обычном.

И это далеко не всё! Когда будет готов релиз, на Youtube будет загружено видео рассказывающая о всех фичах моего клона, некоторые из этих фич добавлены просто для фана.

Запуск из консоли

python.exe viewer.pyw path_fo_folder_or_image_file

Когда приложуха упала

Бывают случаи, когда из-за фатальной ошибки программа тихо падает или иначе говоря крашится, то есть у пользоватля пропадает её окно из виду. В таком случе информация о краше автоматически будет записана в специальный файл crash.log, который обычно находится в папке приложения. Содержимое этого файла как раз и нужно присылать в раздел Issues. Сразу после краша на экране должен появиться маленький диалог, который предложит по желанию перезапустить приложение заново или отказаться от перезапуска.

Если программа не запускается при даблклике на файле viewer.pyw или при даблклике на изображении, то имеет смысл проверить содержимое файла crash.log в папке приложения и отправить его содержимое разработчику в раздел Issues на GitHub.

Важно (для энтузиастов и программистов)

Из-за GIL в Си-шной реализации Python потоки QThread не работают так, как теоретически задумано, т.е. они выполняются по очереди, а не параллельно. Код обработки данных, например код создания превьюшек, с какого-то момента стал писаться исходя из того, что потоки выполняются по очереди, поэтому имейте ввиду, что при запуске в реальном многопоточном режиме могут появиться сбои, зависания и баги.

Ручное тестирование и рефакторинг