Image Viewer разрабатывается на замену почившей в 2015м году Picasa Photo Viewer. Как и с моей недавней разработкой Oxxxy Screenshoter, кое-что взято за основу из оригинала и вдобавок поверх наворочено куча отсебятины. Поверх этого частично будет клонирован и интегрирован функционал программы PureRef (пюре).
На данный момент документация ещё не готова и только CHANGELOG.md может пролить свет на процесс разработки.
Релиз планируется летом 2025 года. Ранее был указан 2024 год, но мне придётся довести до ума страницу Board (которая клонирует основные возможности PureRef), и вдобавок обойти питоновский GIL для устранения микрофризов в UI при загрузке файлов изображений.
Важно: код не проходил хорошего рефакторинга уже очень давно, следовательно в нём возможны аномалии из говнокода или неясных наименований, и уже поэтому жалобы по этому поводу не принимаются пока. Всё будет исправлено после окончания активной фазы разработки, а пока будет проще воспринимать эту программу как прототип.
Весь исходный код выпущен под 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 как приложение, нужно занести некоторые настройки в реестр Windows.
Что нужно сделать:
image_viewer.ico
отвечает за иконку файлов изображений, которые будут ассоциированы с этим приложением, а иконка image_viewer_lite.ico
отвечает за иконку самого приложения на Панели задач Windows.get_winreg_file.pyw
, в результате выскочит сообщение, где будет написано, что в папке с программой теперь лежит reg-файл.После этих несложных действий программу можно будет увидеть в контестном меню Проводника Windows для файлов-изображений в пункте меню "Открыть с помощью...", а в распахнувшемся подменю программа будет называться Krumassan Image Viewer. Вдобавок теперь будет возможно вручную выбрать Image Viewer как программу для просмотра по умолчанию в свойствах файлов изображений. К сожалению, нет способа автоматически задать Image Viewer приложением по умолчанию для просмотра всех типов изображений из-за предпринятых в Windows мер безопасности. К счастью, в папке test этого репозитория собраны все распространённые типы изображений, так что не придётся искать файлы всех типов у себя на компе, чтобы задать им для просмотра эту программу по умолчанию.
Программа доступна в лайтовом (упрощённом) режиме и в обычном.
И это далеко не всё! Когда будет готов релиз, на Youtube будет загружено видео рассказывающая о всех фичах моего клона, некоторые из этих фич добавлены просто для фана.
python.exe viewer.pyw path_fo_folder_or_image_file
-lite
- затребовать запуск в упрощённом режиме
-full
- затребовать запуск в обычном (полном) режиме
-frame
- затребовать запуск в окне, а не показывать окно на полный экран
-forcelibrarypage
- затребовать запуск со страницы библиотеки
-rerun
- (служебное, не для использования напрямую), для моментального перезапуска процессов, стартовавших из проводника Windows
-aftercrash
- (служебное, не для использования напрямую), для показа сообщений об необработанных ошибках, возникших во время работы программы
Бывают случаи, когда из-за фатальной ошибки программа тихо падает или иначе говоря крашится, то есть у пользоватля пропадает её окно из виду. В таком случе информация о краше автоматически будет записана в специальный файл crash.log
, который обычно находится в папке приложения. Содержимое этого файла как раз и нужно присылать в раздел Issues.
Сразу после краша на экране должен появиться маленький диалог, который предложит по желанию перезапустить приложение заново или отказаться от перезапуска.
Если программа не запускается при даблклике на файле viewer.pyw
или при даблклике на изображении, то имеет смысл проверить содержимое файла crash.log
в папке приложения и отправить его содержимое разработчику в раздел Issues на GitHub.
Из-за GIL в Си-шной реализации Python потоки QThread не работают так, как теоретически задумано, т.е. они выполняются по очереди, а не параллельно. Код обработки данных, например код создания превьюшек, с какого-то момента стал писаться исходя из того, что потоки выполняются по очереди, поэтому имейте ввиду, что при запуске в реальном многопоточном режиме могут появиться сбои, зависания и баги.