LINUX.ORG.RU

Simple Viewer GL 2.75

 , ,


3

5

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

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

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

Новое в 2.75

  • Добавлена поддержка формата XPM (собственная реализация).
  • Добавлена поддержка формата TARGA (собственная реализация).
  • Убрана зависимость от библиотеки libconfig++ в пользу ini-подобного конфигурационного файла.
  • Улучшена поддержка форматов DDS, ICO и XWD.
  • Обновлена палитра ZX-Spectrum (теперь это PULSAR, как на «железном» ZX).
  • Добавлена возможность сохранять зум (переключается по хоткею <shift>+<s>).
  • Исправлена ошибка с фильтрацией текстур.
  • Улучшено сканирование директории, поддержка перетаскивания списка файлов.

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

Сторонняя реализация:

  • PNG (libpng);
  • JPEG (libjpeg);
  • TIFF (libtiff);
  • GIF (giflib);
  • WEBP (webp).

Собственная реализация:

  • PPM (24 raw и 24 ASCII);
  • XPM (только xpm 2);
  • TARGA;
  • DDS (частично);
  • PSD (формат до конца не отреверсили, посему не все функции поддерживаются);
  • ICO (png и «обычные» фреймы);
  • XWD (только x11);
  • SCR (ZX-Spectrum screen);
  • PVR, RAW, AGE (это внутренние форматы).

>>> Simple Viewer GL на BitBucket

★★★★★

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

http://netpbm.sourceforge.net/doc/pgm.html Вот так примерно выглядит заголовок:

P5
640 480
255
данные
Вот поскольку заголовок простой как пробка, многие утилиты используют. Типа всяких мелко-рейтрейсеров, расчитывальщиков аудио автокорреляции итп.

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

Насколько я могу судить, примерно одинаково популярны. AppImage существует уже больше десяти лет, очень долго раскачивался и взлетел буквально в начале прошлого года за счёт того, что они сами пришли к крупным десктопным проектам и окучили их. Snap — более новый проект, но сразу быстро стартовавший за счёт пиарной поддержки Canonical.

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

dpkg -L libglfw3-dev

Похоже, что нужный пакет есть. Почему его не видит cmake мне непонятно. Так а версия cmake какая?

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

Очень похоже на PNM, а его поддержка у меня есть (P3 и P6 - ascii24 и raw24).

Так и есть, pnm это единая замена нескольким другим экстеншенам http://netpbm.sourceforge.net/doc/pnm.html

Значит почти все есть, среди моих используемых утилит есть P5 в заголовке, P3 и P6 не достаточно.

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

http://netpbm.sourceforge.net/doc/pgm.html Вот так примерно выглядит заголовок:

У меня есть поддержка P3 и P6. Для остальных заглушки, поскольку не нашел таких форматов в природе.
У меня такие файлы с расширением PPN и file их определяет как PPN, а внутри есть комментарий «CREATOR: GIMP PNM Filter Version 1.1».

Я запутался.

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

https://github.com/ocornut/imgui

Используем в своих игровых проектах в качестве gui для отладки.

А можете подправить ImGui для OpenGL1.x?

https://github.com/ocornut/imgui/issues/1006

Хотелось бы ядро вот этого 3D редактора перевести на указанный GUI

http://ysflight.in.coocan.jp/polygoncrest/e.html

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

Значит почти все есть, среди моих используемых утилит есть P5 в заголовке, P3 и P6 не достаточно.

Дайте мне пару примеров с P5, а я попробую добавить поддержку.

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

А можете подправить ImGui для OpenGL1.x?
https://github.com/ocornut/imgui/issues/1006

Imgui все равно какой рендерер вы используете. Он отдает вам только данные, а как вы будете их использовать - исключительно ваше дело.

andreyu ★★★★★
() автор топика

Добавлена поддержка формата XPM (собственная реализация).

Зачем? Нужно больше реализаций? Тут в libxpm только code execution залатали..

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

Теперь есть

Благодарю. Вечером потыкаю, когда ебилд запилю.

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

Разницы никакой.

Ага, никакой. Там изменений больше, чем EAPI 4→5. Но в большинстве случаев можно просто изменить EAPI и пару вызовов функций, если не питон, конечно, с ним проблемы.

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

Кстати, в development бранче сделал gif-анимацию с учетом тайм-аутов фрейма.

ТОРТ!

Это пока набросок.

Всё равно торт. Вечером потыкаю. :3

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

я так понимаю, что он не видит какой-то фигни именно для cmake, а не библиотеки

Возможно.

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

Зачем? Нужно больше реализаций?

Ради уменьшения зависимостей.

Тут в libxpm только code execution залатали..

Это прекрасно.

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

в принципе, да

в OpenBSD тоже не работает, хоть пробуй gmake release (gcc 4.2.1), хоть CC=egcc gmake release (gcc 4.9), ругается на какой-то std=c++14 или чё-то типа того

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

imagemagick - это жирный комбайн.

Насчёт комбайна спорить не буду, а в каком месте он жирный?

anonymous
()
Ответ на: комментарий от Linfan

за последний месяц огромные изменения на сайте проекта
[список из четырех скромных пунктов]
Это [...] рутина, которую необходимо делать.

Ну, ОК :)

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

[список из четырех скромных пунктов]

Понятное дело - полная локализация сайта, это как два пальца об асфальт. Это же не меню из 10 пунктов перевести. Меню гораздо серьезнее ;)

BTW на LGW когда https прикрутишь? А то ведь задвинут в поисковой выдаче за Можай.

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

Я добавил

        glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST); 
        glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
...
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter ? GL_LINEAR_MIPMAP_NEAREST : GL_NEAREST);
И уменьшение стало значительно качественнее.

anonymous
()
Ответ на: комментарий от Linfan

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

4.2

Переведены первые три страницы новостей из 24. Ну и порядка 16 продуктовых страниц из меню. Больше ничего переведённого сходу не вижу. Но в любом случае это уже по факту не полная локализация.

BTW на LGW когда https прикрутишь? А то ведь задвинут в поисковой выдаче за Можай.

Мне всё равно. Я не планирую развивать этот проект.

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

Переведены первые три страницы новостей из 24.

Ты категорически невнимателен (как обычно). НЕ переведены 7 из 24 страниц. Там много скриншотов восстанавливать нужно.

Мне всё равно. Я не планирую развивать этот проект.

Бывает. А зачем тогда хостинг содержишь?

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

НЕ переведены 7 из 24 страниц.

На вывод «локализация неполная» это никак не влияет.

А зачем тогда хостинг содержишь?

Потому что там лежат публикации, которые до сих пор ходят читать.

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

Для сборки вьювера нужен c++14. Но я не использую ничего специфичного, так что c++11 будет более, чем достаточно. Пофикшу.

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

Залил набросок в development ветку. Сделал поддержку остальных форматов PNM. Но с одной картинкой есть косяк - битовые данные идут на той же строке, что и заголовок. Эту картинку я пока загрузить не могу. Позже чуть поправлю архитектуру и пофикшу.

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

Поддержки bmp у вас, похоже, нет. На битбакете написано, что есть, исправьте.

Есть, но нужен ImLib2.
Я потихоньку избавляюсь от ImLib2 - tiff и xmp уже гружу сам, позднее будет поддержка bmp.

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

И уменьшение стало значительно качественнее.

Насколько изменилось время загрузки и насколько увеличился расход памяти?

p.s. Проверил, вполне неплохо получилось. Время и память не замерял.

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

и чё делать-то? в debian тоже gcc 4.9 - он не покатит?

Поддержка c++14 в gcc и clang есть давно. Но я не использую ничего специфичного, достаточно c++11. Позже повикшу. Или вы можете сами исправить в CMakeLists.txt.

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

Только я там опечатался немного, GL_LINEAR_MIPMAP_NEAREST везде использовал, GL_LINEAR_MIPMAP_LINEAR это эксперемент, улучшения от него не заметил. По времени разницы тоже не замечаю, по памяти хз чем посмотреть, но мне кажется это мало актуально, открываю просто гиганские изображения и они влазят. За pgm спасибо, все работает)

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

Я тоже попробовал разные варианты:

GL_LINEAR_MIPMAP_NEAREST - Chooses the mipmap that most closely matches the size of the pixel being textured and uses the GL_LINEAR criterion (a weighted average of the four texture elements that are closest to the center of the pixel) to produce a texture value.

GL_LINEAR_MIPMAP_LINEAR - Chooses the two mipmaps that most closely match the size of the pixel being textured and uses the GL_LINEAR criterion (a weighted average of the four texture elements that are closest to the center of the pixel) to produce a texture value from each mipmap. The final texture value is a weighted average of those two values.

И тоже визуально разницы не вижу. Но первый вариант по идее должен быть быстрее.

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

Если есть, значит не работает.

Вполне допускаю. У вас imlib2 в системе есть? Вьювер собрался с поддержкой imlib2?

Попробуйте открыть этот файл с помощью feh - он использует imlib2.

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

Разобрался. Это ошибка в imlib. Корректно открываются bmp файлы с заголовком BMP3, более новые имлиб не понимает.

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

andreyu ★★★★★
() автор топика

Нет масштабирования с прокруткой колеса мыши — крайне непривычно. Обычно активируется с нажатым Ctrl.

Если открыть пустое окно просмотрщика и перетащить туда картинку из файлменеджера, картинка отрисуется в масштабе 100%. Т.е. если целиком не влезет в окно, то надо нажимать <s>. Не уверен, что это правильный дефолт.

Сложный PSD открыл правильно, это хорошо :)

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