
Небольшой вьювер изображений использующий OpenGL. Пользуюсь этим вьювером в повседневной работе для быстрого просмотра списка изображений, определения параметров области, которую занимает спрайт на текстуре.
Поддерживаемые форматы: PSD, AI, EPS, PNG (libpng), XCF (требует доработки), JPEG 2000 (openjpeg), JPEG (libjpeg), TIFF (tiff, многостраничный), ICO (поддержка фреймов в формате png), DDS, GIF (giflib, с поддержкой анимации и возможностью просмотра каждого фрейма отдельно), BMP (частичная поддержка), TARGA, PNM, XWD, XPM, SCR (формат экрана ZX-Spectrum), WebP, OpenEXR.
Основные возможности
- поддерживаются встроенные в файл цветовые ICC-профили;
- отображение EXIF или иной информации, внедренной в файл (клавиша <e>);
- загрузка изображений в отдельном потоке + индикатор процесса загрузки;
- создание списка файлов и поиск позиции, с которой начался просмотр;
- поддержка GIF-анимации;
- отображение координаты и цвета пикселя под курсором (ключ командной строки -p или клавиша P);
- возможность выделения части изображения рамкой (удобно для определения координат и позиции области);
- быстрое скролирование изображения с помощью клавиатуры или мышки;
- произвольное масштабирование изображения с помощью клавиатуры (– / + / 1..0);
- корректное автоматическое масштабирование изображений, не вмещающихся в окно вьювера;
- возможность просмотра многостраничных изображений (клавиши PgUp / PgDn)
- использование OpenGL;
- разбиение больших изображений по нескольким текстурам;
Без минусов не обошлось
- нет возможности переназначить “горячие” клавиши (планирую сделать);
- изображения загруженные с помощью Imlib2 не имеют информации о кол-ве бит на пиксель (постепенно избавляюсь от этой библиотеки в пользу собственной реализации загрузчиков);
Загрузка и сборка
- Исходные коды Simple Viewer GL доступны на Bitbucket
[…] This post was mentioned on Twitter by Siaržuk Piatroŭski and Andrey A. Ugolnik, Andrey A. Ugolnik. Andrey A. Ugolnik said: Simple Viewer GL – мелкий, но шустрый картинко-показыватель: http://www.ugolnik.info/?p=1302 […]
Просто потрясающая программа, это то, что я давно искал. Лёгкий многоформатный просмотрщик с ускорением, без привязки к тулкитам и тем более ДЕ, клавишное управление без назойливого и занимающего ценное место гуя.
Небольшой багрепорт: почему-то не работает увеличение картинки до размера окна, ни через опцию -s, ни через горячую клавишу.
Пожелание: сделать настраиваемые горячие клавиши или хотя бы для начала сделать дополнительную умолчальную клавишу «f» для переключения полноэкранного режима.
Под впечатлением от программы создал билд для арча — http://aur.archlinux.org/packages.php?ID=38746 . Может быть добавите где-то в тексте описания, если интересно.
С большим интересом буду следить за развитием программы. Спасибо вам за ваш труд.
Небольшой багрепорт: почему-то не работает увеличение картинки до размера окна, ни через опцию -s, ни через горячую клавишу.”
Это не баг. Опция scale вписывает в окно вьювера только не вмещающиеся картинки. Если картинка меньше размеров окна, то ее размеры не меняются.
Но есть кнопки “+” и “-” и колесо мыши.
“Пожелание: сделать настраиваемые горячие клавиши или хотя бы для начала сделать дополнительную умолчальную клавишу «f» для переключения полноэкранного режима.”
Это в планах.
“С большим интересом буду следить за развитием программы. Спасибо вам за ваш труд.”
Приятно слышать, что утилита оказалась полезной еще кому то.
>Это не баг. Опция scale вписывает в окно вьювера только не вмещающиеся картинки. Если картинка меньше размеров окна, то ее размеры не меняются.
Но в принципе увеличение картинки под размер окна реализуемо? Иногда бывает очень полезно, хотелось бы видеть.
>Приятно слышать, что утилита оказалась полезной еще кому то.
Думаю в своей целевой области она вне конкуренции, так что популярность, по крайней мере в узких кругах, не за горами (говорю как человек, недавно переглядевший всё, что только нашёл в области легковесных смотрелок 🙂 )
“Но в принципе увеличение картинки под размер окна реализуемо? Иногда бывает очень полезно, хотелось бы видеть.”
Реализовать то можно. Нужно подумать, как это правильно оформить.
“Думаю в своей целевой области она вне конкуренции, так что популярность, по крайней мере в узких кругах, не за горами (говорю как человек, недавно переглядевший всё, что только нашёл в области легковесных смотрелок :)”
В свое время я тоже перебрал много вьюверов. Ни один из них не подходил мне по какой-либо причине, так и появился Simple Viewer.
Очень нравится Ваша программа — давно пользуюсь sview, сейчас пробую sviewgl.
Хотелось бы уточнить один момент.
Старая версия при открытии файла, помещающегося на экране, окно открывалось по размеру изображения.
Сейчас окно всегда одного размера, и изображения туда чаще всего не помещаются, приходится запускать программу в полноэкранном режиме.
Регрессия или фича?
P.S. Ubuntu 8.04
А в полноэкранный режим вы переключаетесь средствами вьювера (по клавише Enter) или используются возможности Metacity?
По Enter (совсем вылетело из головы — у меня не GNOME, а IceWM и, соответственно, Metacity нет).
Вначале хотелось запускать sviewgl с ключом -f, но он у меня не работает.
Посмотрел код – действительно, параметр “-f” хоть и обрабатывается, но не используется для инициализации.
Пофикшу позже.
Это фича. Предполагается, что размером и положением окна в Linux должен заниматься оконный менеджер, а не программа.
Верну ли я старое поведение я еще не решил.
Возможно, я что-то не понимаю, но как оконный менеджер может определить нужный размер окна, если программа этого ему не сообщит?
Неужели в “тяжёлых” средах типа GNOME или KDE это действительно работает?!!
Впрочем, что бы Вы не решили, sview останется моей любимой “смотрелкой” под linux.
Оконный менеджер не может этого знать. Дело в том, что только пользователь (через WM) должен решать, где должно располагаться окно и какого оно должно быть размера. А приложение должно отталкиваться о того размера, который ей сообщил WM.
Необходимость всё делать руками и решать для каждого окна, где и как оно должно располагаться, иногда весьма утомительна…
По крайней мере мне очень хотелось бы иметь ключ, возвращающий старое поведение.
Хотя, конечно же, решать Вам.
Зачем решать для каждого окна? Только для нужных окон/приложений прописать правила.
Упс, не в ту ветку попал комментарий…
“Прошу прощения за глупый вопрос, но как?
И, это глобальная Xorg’овская настройка или зависит от среды?”
Зависит от WM. Про IceWM ничего не знаю, т.к. сам использую Ion3.
Решил тут после долгого времени обновиться. При сборке выдаёт следующее:
fileslist.cpp: В функции-члене «const char* CFilesList::GetName(int)»:
fileslist.cpp:191:51: ошибка: нет декларации «unlink» в этой области видимости
Объявление тут:
[code language=”cpp”]#include <unistd.h>[/code]
Пытаюсь использовать imlib2 у себя в проекте. В CMakeLists.txt возникает ругательство на find_package(IMLIB2):
CMake Warning at CMakeLists.txt:16 (find_package):
By not providing “FindIMLIB2.cmake” in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by “IMLIB2”, but
CMake did not find one.
Could not find a package configuration file provided by “IMLIB2” with any
of the following names:
IMLIB2Config.cmake
imlib2-config.cmake
Add the installation prefix of “IMLIB2” to CMAKE_PREFIX_PATH or set
“IMLIB2_DIR” to a directory containing one of the above files. If “IMLIB2”
provides a separate development package or SDK, be sure it has been
installed.
CMAKE_PREFIX_PATH устанавливал, IMLIB2_DIR – тоже, все без толку. Может есть что неочевидное (для меня по крайней мере), что заставляет-таки собраться проект с IMLIB2?
Добрый день, сколько лет, сколько зим 🙂
Судя по датам в репозитории вы что-то меняете время от времени, хорошо, что дело движется.
Пост нуждается в обновлении, нычне обновление репы делается через
svn checkout http://svn.code.sf.net/p/simpleviewer/code/ simpleviewer-code
Есть у меня и багрепорт по сборке, пришлось сваять вот такой вот патчик
— formatgif.cpp^I2014-05-21 11:51:01.000000000 +0600$
+++ formatgif1.cpp^I2014-05-21 11:36:51.000000000 +0600$
@@ -26,7 +26,7 @@$
}$
fclose(m_file);$
$
– GifFileType* file = DGifOpenFileName(filename);$
+ GifFileType* file = DGifOpenFileName(filename, NULL);$
if(file == 0)$
{$
std::cout << "Error Opening GIF image" << std::endl;$
Т.к. в gif_lib.h функция объявлена с двумя аргументами.
Обновил PKGBUILD https://aur.archlinux.org/packages/simpleviewergl-svn
Планируется ли поддержка TGA? Есть ли в ближайших планах реализация масштабирования мелких изображений до размеров окна?
Вьювер давно переехал на BitBucket, дойдут руки до исправления текущих регрессий, опубликую линк.
Дошли руки до вьювера, исправил баги, добавил новые фичи и новые форматы. Если не сложно, обновите билд. Вьювер доступен в Git на BitBucket:
git clone git@bitbucket.org:andreyu/simple-viewer-gl.git
$ git clone git@bitbucket.org:andreyu/simple-viewer-gl.git
Cloning into ‘simple-viewer-gl’…
Warning: Permanently added the RSA host key for IP address ‘131.103.20.168’ to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
А если так?
git clone https://bitbucket.org/andreyu/simple-viewer-gl
Да, так масло пошло, дальше проблема со сборкой
$ mkdir build
$ cd build
$ cmake ../
CMake Error: The source directory “…” does not appear to contain CMakeLists.txt.
Многоточие вместо реального пути, куда клонировал сырцы. Там такого файла действительно нет.
Если сборка под Linux, то так:
$ mkdir build
$ cd build
$ cmake ../projects/linux
Но я делаю просто make linux в корне вьювера.
А, ну я просто следовал инструкциям в INSTALL, надо значит там текст обновить.
Кстати, наверное цель наверное не linux, а all.
И опять вылезла эта ошибка при сборке с gif’ом http://pastebin.com/MrU0031m
Да, INSTALL подправил, попадет в следующий билд.
Точно, цель all.
По поводу giflib, какая версия библиотеки у вас? Я использую версию 4.2.3, там такой прототип функции:
GifFileType *DGifOpenFileName(const char *GifFileName);
Один параметр – имя файла.
У меня 5.1.0 . Да, видимо дело в этом. Значит сделаю тогда патч.
Кстати, все что выше 4.2.3 замаскано и в Gentoo Prefix под OS X.
Где сейчас можно узнать идентификатор версии? Раньше я пользовался ревизией svn, сейчас у git’а какие-то неудобоваримые хеши.
В master ветке есть tag для версии. Текущая версия v2.4. Можно по тегу забирать нужную версию исходников.
Или брать head из девелоперской ветки development, но это уже для маньяков 🙂
Сваял новый пакет https://aur.archlinux.org/packages/simpleviewergl-git/
А куда нынче переехал опакеченный вьювер?
[…] Подробнее о Simpel Viewer GL. […]
[…] Эта запись и вьювер устарели. Актуальная статья и вьювер тут. […]
[…] поддержку формата PSD (растровый формат Adobe Photoshop) в Simple Viewer GL. На данный момент реализовал не все возможности, но […]
[…] Существуют версии для Windows, Linux x86, Irix N32, Solaris Sparc, BeOS x86, MacOS X, FreeBSD x86, Cygwin.Библиотека закрытая. Для коммерческого использования необходимо разрешение автора.Когда-то я использовал эту библиотеку в своем Simple Viewer, еще до появления его обновленной версии Simple Viewer GL. […]