LINUX.ORG.RU
ФорумTalks

Simple Viewer GL v3.1.0 — просмотрщик изображений

 , ,


2

1

Simple Viewer GL — легковесный просмотрщик изображений.

Краткое описание

Интерфейс состоит из одного окна с опциональной строкой статуса и информацией о пикселе под курсором и/или выделенной области (скриншот). Simple Viewer GL умеет определять тип файла по его сигнатуре (параметр -a), а не только по расширению файла. Поддерживается рекурсивный обход директории (параметр -r).

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

PNG, JPEG, JPEG 2000, PSD, AI, EPS, XCF (GIMP image format), GIF, SVG, TIFF, TARGA, ICO, ICNS (Apple Icon Image), BMP, PNM, DDS, XWD, SCR (ZX-Spectrum screen), XPM, WebP, OpenEXR.

Работает в GNU/Linux, FreeBSD и macOS.

Новое в 3.1.0

  • Добавлена поддержка формата SVG.
  • Переработана поддержка XCF (GIMP image format).
  • Исправлена ошибка загрузки DDS/DXT5.
  • Фиксы связанные с WebP и LCMS2.
  • Улучшено определение формата JPEG.
  • Улучшена обработка ошибок TIFF.
  • Исправлены ошибки, найденные участниками данной ветки.

Где взять?

Проект Simple Viewer GL доступен на BitBucket.

Как я использую вьювер

  1. Жму enter в midnight commander на заинтересовавшем меня файле. С помощью мышки выбираю нужную мне область изображения, что бы определить ее характеристики (позиция/разме спрайта в атласе, определения origin/hotspot спрайта, определение цвета пикселя).

  2. В консоли sviewgl . -r для рекурсивного просмотра всех изображений в директории. Иногда использую параметр -a для определения формата по содержимому файла.

  3. Помечаю с помощью кнопки del файлы для удаления. После чего жму ctrl+del и помеченный файлы удаляются.

★★★★★

Последнее исправление: andreyu (всего исправлений: 2)
Ответ на: комментарий от andreyu

Пара вопросов. Поскольку в графике я слабоват, то вопрос первый.
Если используется imlib2 то всякие jpeg, gif, png, tiff смотрятся через неё? И остальные библиотеки как и бы не нужны. Если отключить imlib2 то будут нужны все остальные? Хотя скорее всего вопрос не правильно задан. В общем, мне нужно понять, какие библиотеки и когда используются и какие библиотеки с чем используются вместе и с чем не используются.
Вопрос второй, про openexr и ilmbase. Они обе нужны для «ILM's OpenEXR high dynamic-range image file format»? Или используется либо та, либо эта?

imul ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Понятия не имею. Не знаю даже где примеры таких файлов взять, чтобы проверить.

PSD/AI – вполне себе аргумент. В каком мире нужно жить, чтобы вообще с ними не сталкиваться?

mono ★★★★★
()
Ответ на: комментарий от mono

А, Фотошоп, в последний раз я его видел примерно 15 лет назад. Даже винду уже больше около года не видел по-моему. Я как раз не понимаю в каком ты мире живёшь, что у тебя всем вокруг зачем-то нужен графический редактор, тем более фш.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Они выбирают лучшее, остальное остаётся на битпомойке.

О_о. Это в какой вселенной?

ораздо полезнее было бы запилить поддержку недостающих форматов в Gnome или KDE.

Увы, тек кто знает, как будет «лучше» умеют только учить других.

Понятия не имею. Не знаю даже где примеры таких файлов взять, чтобы проверить.

Это лишь говорит об узости вашего кругозора. Впрочем, большинство советчиков слабо разбираются в предмете разговора.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от imul

Если используется imlib2 то всякие jpeg, gif, png, tiff смотрятся через неё?

Если вьювер не поддерживает какой-то формат нативно или через какую-либо библиотеку, то imlib2 используется как «последний шанс».

И остальные библиотеки как и бы не нужны

Увы, у imlib2 плохая поддержка большинства форматов. Поэтому лучше по-умолчанию включать использование сторонних библиотек.

Если отключить imlib2 то будут нужны все остальные?

На этапе компиляции проверяется наличие нужных библиотек в системе. Если их нет, то поддержка формата отключается.

В общем, мне нужно понять, какие библиотеки и когда используются и какие библиотеки с чем используются вместе и с чем не используются.

Желательно включить в зависимость jpeg, png, lcms2, gif, tiff, webp, exr, openjpeg (JPEG2000), curl (для загрузки картинок по сети), imlib2 (но лично я не использую ее).

Вопрос второй, про openexr и ilmbase. Они обе нужны для «ILM’s OpenEXR high dynamic-range image file format»? Или используется либо та, либо эта?

Не помню, кто от кого зависит, но нужны обе для exr.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от andreyu

Я тебе ничего не советовал, и ничему тебя не учу, ты переоциваешь интерес к своей персоне.

Это лишь говорит об узости вашего кругозора

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

WitcherGeralt ★★
()

Решил испробовать, клонировал, собрал (make release).

Размер исполняемого файла получился 1 376 104 байт. Это правильно? Сделал strip, размер стал 1 264 632. Значит, в release были отладочные символы? Это жжж непорядок? :)

И вопрос по использованию, с ходу не нашёл в описании - существует ли файл конфигурации, или же управление только ключами командной строки? Если существует, то где он находится?

Beewek ★★
()
Ответ на: комментарий от WitcherGeralt

Гораздо полезнее было бы запилить поддержку недостающих форматов в Gnome

+++

Deleted
()
Ответ на: комментарий от andreyu

И последний вопрос. Какие переменные надо передавать cmake для указания с чем собираться и с чем не собираться? Что-то типа:
-DCURL_SUPPORT=$(usex curl)
-DEXIF_SUPPORT=$(usex exif)
-DFREETYPE_SUPPORT=1
-DGIF_SUPPORT=$(usex gif)
-DGLFW_SUPPORT=1
-DIMLIB2_SUPPORT=$(usex imlib2)
-DJPEG2000_SUPPORT=$(usex jpeg2k)
-DJPEG_SUPPORT=$(usex jpeg)
-DLCMS2_SUPPORT=1
-DOPENEXR_SUPPORT=$(usex exr)
-DOPENGL_SUPPORT=1
-DPNG_SUPPORT=$(usex png)
-DTIFF_SUPPORT=$(usex tiff)
-DWEBP_SUPPORT=$(usex webp)
Сейчас тупо ищет всё что можно и что нашлось подключает.
И соответственно на CURL_SUPPORT и прочее *_SUPPORT ругается, что «variables were not used by the project».
Какие переменные нужно подставлять в cmake?

imul ★★★★★
()
Ответ на: комментарий от Beewek

Это жжж непорядок? :)

Вполне нормально. Но пожалуй стоит добавить strip для релизной версии.

Если существует, то где он находится?

Да, существует. Пример с описанием куда поместить файл и с описанием параметров находится в config.example

andreyu ★★★★★
() автор топика
Ответ на: комментарий от peregrine

Просто ваша поддержка SVG, как впрочем и вся в Linux-е отвратительна.

Можно пример svg-файла, который отвратительно отрендерился во вьювере?

Сорри за жизу.

Да без проблем.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от imul

И последний вопрос. Какие переменные надо передавать cmake для указания с чем собираться и с чем не собираться?

Сейчас Cmake исходя из результатов поиска библиотек выставляет такие дефайны:

LCMS2_SUPPORT
EXIF_SUPPORT
JPEG2000_SUPPORT
GIF_SUPPORT
TIFF_SUPPORT
WEBP_SUPPORT
OPENEXR_SUPPORT
CURL_SUPPORT
IMLIB2_SUPPORT

Если удалить их определения, то соответствующая поддержка будет убрана.

Но наверное лучше как-то на этапе работы Cmake явно отключать ненужное. Хз, как это сделать правильно. Может вы знаете правильный способ?

andreyu ★★★★★
() автор топика
Ответ на: комментарий от Beewek

А сочетания клавиш поменять как-то можно, не залезая в исходники?

Этот таск есть в TODO уже не менее года, но никак не реализую его.

А какие кнопки вы хотите перемапить?

andreyu ★★★★★
() автор топика
Ответ на: комментарий от andreyu

А какие кнопки вы хотите перемапить?

Я привык стрелочками влево-вправо переходить на предыдущий/следующий файл. И кнопкой «1» включать масштаб 100% вписывание в экран. Это, конечно, не критично, но было бы приятным бонусом.

Сейчас проверил на своих svg-шках (иконки для кнопок), одна из нескольких десятков не воспроизвелась. Но это всё равно лучше, чем feh, который вообще никак не показывает ни svg, ни аниминованные gif-ки.

Beewek ★★
()
Последнее исправление: Beewek (всего исправлений: 1)

Ещё погонял немного. Есть замечание. Я в настройках включил

fit_image = true

Запускаю, первое изображение показывает правильно - вписывает в экран. Если не менять масштаб, то и последующие тоже вписывает. Но стоит мне только поменять масштаб (колёсиком ли, цифрами «1»..«0», неважно) - тогда последующие изображения показываются в масштабе 100%. Причём неважно, увеличил я масштаб или уменьшил.

Beewek ★★
()
Ответ на: комментарий от Beewek

https://pastebin.com/XiSKYTWm

Спасибо, пофиксил. Добавлю настройку в конфиг и залью обновку.

Ремапингом хоткеев займусь позднее.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от Beewek

Причём неважно, увеличил я масштаб или уменьшил.

Спасибо, пофиксил.

Версия со всеми фиксами 3.1.0 уже в репозитории.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от WitcherGeralt

PSD, AI, XCF
Не знаю даже где примеры таких файлов взять, чтобы проверить.

Мощно. Photoshop?, Adobe Illustrator?, Gimp.

Deleted
()
Ответ на: комментарий от WitcherGeralt

Лол, почему? Вот XFC реально нужно просматривать. Ну ristretto из xfce4 его «видит».

Deleted
()
Ответ на: комментарий от andreyu

Как правильно не знаю. Я смотрел как сделано в других ебилдах с симейк. Что получается в результате я написал выше.

imul ★★★★★
()
Ответ на: комментарий от andreyu

Спасибо, пофиксил.

Да, теперь порядок! SVG-шка та тоже починилась.

Beewek ★★
()
Ответ на: комментарий от WitcherGeralt

я этим не пользуюсь, значит это никому не надо

у тебя пригорело с безобидной критики

Ты себя переоцениваешь. Это не критика, это говно.

EXL ★★★★★
()
Ответ на: комментарий от WitcherGeralt

нинужно

по существу

Кукарекай дальше, всем очень смешно наблюдать за ограниченностью твоего мышления.

EXL ★★★★★
()
Ответ на: комментарий от imul

Я смотрел как сделано в других ебилдах с симейк.

Отлично, а что это за проекты? Хочу посмотреть их и сделать так же.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от EXL

HEIF / HEIC не думал запилить, кстати?

Давно хочу прикрутить, но пока руки не дошли. Присматривался к https://www.libde265.org/

andreyu ★★★★★
() автор топика
Ответ на: комментарий от EXL

Сам такой

Ага, сейчас тупенький детсадовец будет мне рассказывать про ограниченность мышления.

WitcherGeralt ★★
()

Ещё сразу фичу запрошу: сделать, чтобы по home/end переходило на первую/последнюю картинки.

Beewek ★★
()
Ответ на: комментарий от Beewek

Ещё сразу фичу запрошу: сделать, чтобы по home/end переходило на первую/последнюю картинки.

PgUp / PgDn предназначены для переключения страниц в многостраничном файле (tiff, gif). При этом для gif отключается анимация и каждый фрейм можно просмотреть отдельно.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от imul

Например dev-util/cmake.

Спасибо, постараюсь разобраться как только освобожусь.

Кстати, в master уже есть версия v3.1.0 с одноименным тегом.

andreyu ★★★★★
() автор топика
Ответ на: комментарий от andreyu

PgUp / PgDn предназначены для переключения страниц в многостраничном файле (tiff, gif).

Для ICO ещё – киллер-фича. Во многих редакторах у ICO показывается только первый битмап.

EXL ★★★★★
()

Ещё пару косяков нашёл:

1. Не работает опция конфигурации «start_fullscreen». Я вообще не нашёл в коде такой строки :-)

2. Если запускать программу в полный экран (с ключом -f), то по кнопке ENTER она не переключается в оконный режим, а завершает работу. (Не знаю, баг это или фича).

Beewek ★★
()
Ответ на: комментарий от Beewek

Не работает опция конфигурации «start_fullscreen».

Понял, в чём дело. Опция должна называться full_screen, в примере конфигурации неправильно.

Beewek ★★
()
Ответ на: комментарий от Beewek

Если запускать программу в полный экран (с ключом -f), то по кнопке ENTER она не переключается в оконный режим, а завершает работу.

Отбой, починилось. Не знаю, что это было, но теперь всё нормально.

Beewek ★★
()
Ответ на: комментарий от UNiTE

А можно смотреть корректно файлы с CMYK?

Если речь о CMYK в PSD, то я использую такую формулу для преобразования:

out[0] = (uint8_t)((1.0 - (C * Kinv + K)) * 255.0);
out[1] = (uint8_t)((1.0 - (M * Kinv + K)) * 255.0);
out[2] = (uint8_t)((1.0 - (Y * Kinv + K)) * 255.0);
andreyu ★★★★★
() автор топика
Ответ на: комментарий от Beewek
  1. Не работает опция конфигурации «start_fullscreen». Я вообще не нашёл в коде такой строки :-)

Параметр был переименован в full_screen = true

  1. Если запускать программу в полный экран (с ключом -f), то по кнопке ENTER она не переключается в оконный режим, а завершает работу. (Не знаю, баг это или фича).

Это баг. Но у меня не воспроизводится. Крешдамп создается?

andreyu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.