暫無描述

Grannik 16281bc935 Загрузить файлы '' 2 周之前
Makefile 16281bc935 Загрузить файлы '' 2 周之前
README.md 2f6b66583a Обновить 'README.md' 2 周之前
grxiv 16281bc935 Загрузить файлы '' 2 周之前
grxiv.cpp 16281bc935 Загрузить файлы '' 2 周之前
grxiv.moc 16281bc935 Загрузить файлы '' 2 周之前
grxiv.o 16281bc935 Загрузить файлы '' 2 周之前
grxiv.pro 16281bc935 Загрузить файлы '' 2 周之前
moc_predefs.h 16281bc935 Загрузить файлы '' 2 周之前

README.md

grxiv - Просмотрщик изображений на Qt и OpenGL

grxiv (Grannik X Image Viewer)— это простой и эффективный просмотрщик изображений, написанный на C++ с использованием библиотек Qt и OpenGL. Программа позволяет просматривать изображения в заданной директории или отдельный файл, поддерживает масштабирование с помощью колеса мыши и навигацию по изображениям с помощью клавиш. Проект оптимизирован для работы на Linux (в частности, протестирован на Ubuntu 22.04) и использует OpenGL для рендеринга изображений.

Основные возможности

  • Просмотр изображений: Поддержка форматов .jpg, .jpeg, .png, .bmp, .gif.
  • Навигация: Переключение между изображениями в директории с помощью клавиш (предыдущее) и (следующее).
  • Масштабирование: Увеличение и уменьшение изображения с помощью колеса мыши (масштаб от 0.1x до 10x).
  • Быстрое закрытие: Нажмите Q для выхода из программы.
  • Лёгкая установка: Простая сборка с использованием qmake и make.

Требования

Для сборки и запуска grxiv необходимы следующие зависимости:

  • Qt 5 (рекомендуется версия 5.15 или выше)
  • OpenGL (версия 2.1 или выше, поддерживается Mesa)
  • Компилятор C++ (g++ или другой, совместимый с C++11)
  • Система сборки: qmake и make
  • Операционная система: Linux (протестировано на Ubuntu 22.04)

Установка зависимостей

Для Ubuntu выполните следующую команду, чтобы установить необходимые пакеты:

sudo apt-get install qt5-default libqt5opengl5-dev build-essential

Проверьте наличие Qt:

qmake --version

Проверьте поддержку OpenGL:

glxinfo | grep "OpenGL version"

Сборка проекта

  1. Склонируйте репозиторий или скопируйте файлы проекта в локальную директорию:

    git clone <URL_репозитория>
    cd grxiv
    
  2. Очистите проект от старых сборочных файлов (если они есть):

    make clean
    
  3. Сгенерируйте Makefile с помощью qmake:

    qmake grxiv.pro
    
  4. Соберите проект:

    make
    

После успешной сборки в директории появится исполняемый файл grxiv.

Установка в систему (опционально)

Чтобы запускать grxiv из любой директории, скопируйте исполняемый файл в

sudo cp grxiv /usr/local/bin/

Использование

Запустите программу, указав путь к изображению или директории с изображениями:

./grxiv /path/to/the/image.jpg

Или для директории:

./grxiv /path/to/the/directory/

Управление

  • Навигация:
    • — предыдущее изображение.
    • — следующее изображение.
  • Масштабирование:
    • Прокрутите колесо мыши вверх для увеличения.
    • Прокрутите колесо мыши вниз для уменьшения.
  • Закрытие:
    • Нажмите Q для выхода.

Отладочная информация

При запуске программа выводит в консоль полезную информацию, такую как:

  • Версия OpenGL и GLSL.
  • Статус загрузки изображений (например, путь и размер).
  • Состояние OpenGL-контекста и текстур.

Пример вывода:

OpenGL version: 4.6 (Compatibility Profile) Mesa 23.2.1
GLSL version: 4.60
Shaders initialized successfully
Loading image: "/home/user/Pictures/MyPictures/image.jpg"
Image loaded successfully. Size: QSize(768, 768)
Context active: true
Texture updated

Структура проекта

  • grxiv.cpp: Основной исходный код программы, реализующий логику просмотра изображений.
  • grxiv.pro: Файл проекта для qmake, содержащий настройки сборки.
  • grxiv.moc: Сгенерированный файл для поддержки механизма сигналов и слотов Qt.

Возможные проблемы и их решение

  1. Ошибка: QOpenGLTexture::setData() requires a valid current context Убедитесь, что OpenGL-контекст инициализирован корректно. Текущая версия кода решает эту проблему, загружая изображения после инициализации OpenGL.

  2. Изображения не отображаются

    • Проверьте, что указанный путь к файлу или директории корректен.
    • Убедитесь, что изображения имеют поддерживаемый формат (.jpg, .png, и т.д.).
    • Добавьте отладочный вывод в метод paintGL для проверки рендеринга.
  3. Ошибки компиляции Убедитесь, что все зависимости установлены:

    sudo apt-get install qt5-default libqt5opengl5-dev
    

Лицензия

Проект распространяется под лицензией MIT.

Автор:

Grannik

Контакты:

Репозитории

  • Codeberg: grxiv
  • GitHub: grxiv
  • GitLab: grxiv
  • SourceForge: grxiv
  • NotABug:
  • Gitea (Demo):
  • Gogs (Demo):