LINUX.ORG.RU
 
andreyu

SimpleViewer GL


0

1

Обновил SimpleViewer GL, из нового:

  • поддержка многостраничных ICO и GIF (но автоматической анимации все еще нет), клавиши PgUp и PgDn;
  • информация о текущем пикселе (координата и цвет в формате ARGB);
  • поправлены различные баги.

Внешний вид SimpleViewer GL.

Краткое описание возможностей для тех, кто не слышал о нем ранее: простая смотрелка графических файлов. Поддерживаются все те форматы, которые знает Imlib2, PSD (не полная поддержка, мало спецификаций нашел), MS ICO (не поддерживаются фреймы в новом формате, т.к. не нашел описания), PNG (через libpng), JPEG (через libjpeg), GIF (через giflib).

  • отсутствие графического интерфейса;
  • не имеет привязки к WM / DE;
  • использует OpenGL для отображения, масштабирования (большое изображение разбивается на нужное кол-во мелких текстур);
  • быстрое скроллирование изображения с помощью клавиатуры или мышки;
  • отображение информации об изображении (объем занимаемой памяти, размер изображения в пикселях, номер изображения в списке, кол-во страниц во многостраничном файле);
  • возможность отключения информационной строки;
  • отображение информации о пикселе под курсором;
  • возможность рекурсивно обойти все вложенные директории (параметр -r командной строки) и составить плоский список;
  • изменение размера изображения для того, что бы оно вписалось в окно с соблюдением пропорций;
  • возможность смены подложки изображения ("шахматная доска" или однотонная заливка выбранным цветом);
  • возможность включения рамки вокруг изображения (полезно для определения реальных границ изображения с прозрачностью);
  • автоматическое отключение курсора через несколько секунд после прекращения движения мышки);

Скачать можно с SourceForge, есть готовый бинарник и сорцы: http://simpleviewer.sourceforge.net/

Но я рекомендую брать версию из репозитория:

$ svn co https://simpleviewer.svn.sourceforge.net/svnroot/simpleviewer simpleviewer 
$ cd simpleviewer
$ make


[#]  
andreyu

Режим отображения информации о текущем цвете включается или из командной строки с помощью параметра -p, или клавишей P на клавиатуре.

***** ()
[#]  
neocrust

Какой тулкит?

**** ()
[#] Ответ на: комментарий от neocrust 29.08.2010 19:47:22  
andreyu

Используется OpenGL (FreeGLUT).

***** ()
[#]  
thesis
make: *** Нет правила для сборки цели `install'.  Останов.

Бугога. И если развернуть во весь экран, не перерисовывает окно, отчего возникает бардак и непонимание.

*** ()
[#]  
jcd

можно скриншот для танковых частей?

*** ()
[#] Ответ на: комментарий от jcd 29.08.2010 19:59:09  
thesis

Представь любую картинку на клетчатом фоне. Сверху - декорации окна.

*** ()
[#] Ответ на: комментарий от thesis 29.08.2010 20:00:11  
jcd

управление показом - через хоткеи, справка о них - через $0 --help ?

*** ()
[#] Ответ на: комментарий от thesis 29.08.2010 19:57:29  
andreyu
make: *** Нет правила для сборки цели `install'.  Останов.

Да, тут я ошибся, такого правила я не писал. Скопируйте бинарник в любое удобное для вас место.

> Бугога. И если развернуть во весь экран, не перерисовывает окно, отчего возникает бардак и непонимание.

Как разворачиваете на весь экран?

***** ()
[#] Ответ на: комментарий от jcd 29.08.2010 19:59:09  
andreyu

> можно скриншот для танковых частей?

Добавил ссылку на скриншот.

***** ()
[#] Ответ на: комментарий от jcd 29.08.2010 20:10:04  
andreyu

> управление показом - через хоткеи, справка о них - через $0 --help ?

Да, все на хоткеях. Справка - запуск без параметров.

***** ()
[#] Ответ на: комментарий от andreyu 29.08.2010 20:15:34  
thesis

Разворачиваю тычком в кнопку на заголовке окна. Kwin без эффектов, карточка intel, если это важно.

*** ()
[#]  
alex_custov

квадраты почему-то рисуются на всём фоне, а не строго под картинкой. Сколько форматов поддерживает? PSD? XCF?

**** ()
[#] Ответ на: комментарий от thesis 29.08.2010 20:17:56  
andreyu

> Разворачиваю тычком в кнопку на заголовке окна. Kwin без эффектов, карточка intel, если это важно.


Значит приложение не получает сообщение об изменении окна. Кто в этом виноват я не знаю. Может FreeGLUT, а возможно драйвер.
Дайте скриншот.

Что происходит по нажатию Enter?

***** ()
[#] Ответ на: комментарий от alex_custov 29.08.2010 20:19:57  
andreyu

> квадраты почему-то рисуются на всём фоне, а не строго под картинкой.

Скриншот, пожалуйста.

> Сколько форматов поддерживает? PSD? XCF?


На данный момент поддерживается все, что умеет Imlib2, PSD (не полная поддержка, мало спецификаций нашел), MS ICO (не поддерживаются фреймы в новом формате, т.к. не нашел описания), PNG (через libpng), JPEG (через libjpeg), GIF (через giflib).

***** ()
[#]  
mono

можно было и на главную написать..

***** ()
[#]  
Mystra_x64

>arial.ttf в исходниках

это нормально?

***** ()
[#] Ответ на: комментарий от andreyu 29.08.2010 19:55:44  
mclaudt

>>Используется OpenGL (FreeGLUT).

Отлично, оно ещё живо? Много ли его народу двигает? Есть будущее?

# ()
[#] Ответ на: комментарий от andreyu 29.08.2010 20:23:13  
thesis

Вот.

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

По enter'у отрисовывается нормально, но после повторного нажатия окно сворачивается в верхний левый угол, хотя до разворачивания было в нижнем левом.

*** ()
[#] Ответ на: комментарий от Mystra_x64 29.08.2010 20:35:09  
andreyu

> >arial.ttf в исходниках
> это нормально?


А как я по вашему должен текстовую информацию выводить?

***** ()
[#] Ответ на: комментарий от mclaudt 29.08.2010 20:36:51  
andreyu

> > Используется OpenGL (FreeGLUT).
> Отлично, оно ещё живо? Много ли его народу двигает? Есть будущее?


Ну пока OpenGLUT его не переплюнул.

***** ()
[#] Ответ на: комментарий от thesis 29.08.2010 20:39:46  
andreyu

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

Может в верхнем левом? По любому это баг. Буду думать. Сам использую Ion3, поэтому таких проблем у меня нет впринципе.

> По enter'у отрисовывается нормально, но после повторного нажатия окно сворачивается в верхний левый угол, хотя до разворачивания было в нижнем левом.


В том смысле, что от окна остается только тайтлбар? По поводу восстановления позиции окна - посмотрю, что можно сделать.

***** ()
[#] Ответ на: комментарий от andreyu 29.08.2010 20:42:32  
Mystra_x64

А его лицензия это позволяет? Liberation'ом (или любым другим шрифтом, который пользователю понравится), не?

Proprietary font

Arial is a proprietary font.[14] Monotype Imaging is the current owner of the copyrights for the Arial font software. It is not allowed to modify, alter, translate, convert, or otherwise change the computer font, or to create derivative works from it or any portion thereof.[15][16] It is also not allowed to rent, lease, sublicense, give, lend, or further distribute the computer font, or any copy thereof, without purchasing a license.[15][16][17]

***** ()
[#] Ответ на: комментарий от Mystra_x64 29.08.2010 20:47:51  
andreyu

> А его лицензия это позволяет? Liberation'ом (или любым другим шрифтом, который пользователю понравится), не?

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

***** ()
[#] Ответ на: комментарий от andreyu 29.08.2010 20:42:32  
alex_custov

>>А как я по вашему должен текстовую информацию выводить?

Исходя из настроенных шрифтов в иксах, возможно даже с плавающим выбором исходя из популярности.

**** ()
[#] Ответ на: комментарий от alex_custov 29.08.2010 20:52:06  
andreyu

> Исходя из настроенных шрифтов в иксах, возможно даже с плавающим выбором исходя из популярности.

Для этого нужно подключаться к X-серверу. Так было в SimpleViewer, а в SimpleViewer GL я полностью отказался от непосредственной работы с X.

***** ()
[#] Ответ на: комментарий от andreyu 29.08.2010 20:26:29  
alex_custov

>>> квадраты почему-то рисуются на всём фоне, а не строго под картинкой.

>>Скриншот, пожалуйста.


Они рисуются даже несмотря на то, что в JPEG нету прозрачности:

http://img839.imageshack.us/img839/6124/72494134.jpg

**** ()
[#] Ответ на: комментарий от andreyu 29.08.2010 20:55:25  
alex_custov

Почему? Если программа работает только в X, то надо использовать X по полной.

**** ()
[#] Ответ на: комментарий от andreyu 29.08.2010 20:51:06  
Mystra_x64

Я нынче использую только Liberation Sans, так что могу только его посоветовать. Оно GPL2 + исключения.

***** ()
[#] Ответ на: комментарий от alex_custov 29.08.2010 20:55:50  
andreyu

> Они рисуются даже несмотря на то, что в JPEG нету прозрачности:
> http://img839.imageshack.us/img839/6124/72494134.jpg


Тут все правильно. Где нет изображения с альфой, там "шахматка". А что по вашему там должно быть?

***** ()
[#] Ответ на: комментарий от Mystra_x64 29.08.2010 21:03:09  
andreyu

> Я нынче использую только Liberation Sans, так что могу только его посоветовать. Оно GPL2 + исключения.

Нет у меня такого. Да и исключения пугают, не хочется сменить шило на мыло,

***** ()
[#] Ответ на: комментарий от alex_custov 29.08.2010 20:57:05  
andreyu

> Почему? Если программа работает только в X, то надо использовать X по полной.

Да потому, что OpenGL / *GLUT не предоставляют хендла к соединению с X-сервером.

***** ()
[#] Ответ на: комментарий от andreyu 29.08.2010 21:14:36  
andreyu

Может быть (повторюсь, может быть) я откажусь от *GLUT и буду создавать окно как и раньше с помощью xlib или xcb.

***** ()
[#] Ответ на: комментарий от Mystra_x64 29.08.2010 21:20:27  
Mystra_x64

Ну или опцию пользователю в конфиге.

***** ()
[#]  

Спасибо за софтину, хорошая.

Хотелось бы иметь возможность настройки через конфиг, параметры командной строки не всегда удобны. Пока задал нужные опции редактированием сорцов, но это извращение же.

Ёще баг: на отмасштабированых картинках иногда видно тёмные полосы: пример1, пример2

** ()
[#]  
AX

Чем оно лучше feh/geeqie?

>не имеет привязки к WM / DE


Может всё-таки "к toolkit / DE"? А то я про смотрелки, привязанные к флюксу или авесому, ещё ни разу не слышал… :)

**** ()
[#] Ответ на: комментарий от xetf 29.08.2010 22:51:35  
andreyu

> Хотелось бы иметь возможность настройки через конфиг, параметры командной строки не всегда удобны.

Да, есть такое в планах.

> Пока задал нужные опции редактированием сорцов, но это извращение же.


alias не подойдет?

> Ёще баг: на отмасштабированых картинках иногда видно тёмные полосы


Какой драйвер / карта?

***** ()
[#] Ответ на: комментарий от AX 29.08.2010 23:07:38  
andreyu

> Чем оно лучше feh/geeqie?

Ну к примеру этими пунктами:
1. поддерживает больше форматов.
2. умеет многостраничные ico / gif.
3. показывает инфу об имидже.
4. показывает инфу о пикселе под курсором.
5. умеет корректно строить дерево файлов (попробуйте запустить feh desired_image.png и после этого попробуйте перейти на предыдущее/следующее изображение).

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

> Может всё-таки "к toolkit / DE"? А то я про смотрелки, привязанные к флюксу или авесому, ещё ни разу не слышал… :)


Да, наверное так будет правильнее.

***** ()
[#]  
andreyu

Только что залил в репозиторий новый билд, который умеет грузить ICO с фреймами в формате PNG.

***** ()
[#] Ответ на: комментарий от andreyu 30.08.2010 0:30:49  

>alias не подойдет?

Для терминала подойдёт, но иногда запускаю и другими способами. Проще поправить пару строк и пересобрать, чем настраивать везде запуск с нужными опциями.

>Какой драйвер / карта?


x11-drivers/xf86-video-ati-6.13.1
01:00.0 VGA compatible controller: ATI Technologies Inc RV350 AS [Radeon 9550]

** ()
[#] Ответ на: комментарий от xetf 30.08.2010 0:39:07  
andreyu

> Для терминала подойдёт, но иногда запускаю и другими способами. Проще поправить пару строк и пересобрать, чем настраивать везде запуск с нужными опциями.

Пока я не прикручу поддержку конфига, можете написать врапер.

> x11-drivers/xf86-video-ati-6.13.1


Спасибо, нужно будет поискать АТИ.

***** ()
[#] Ответ на: комментарий от andreyu 29.08.2010 21:11:53  
alex_custov

"шахматка" имхо должна быть под изображенем (и только под ним), когда оно может иметь альфа канал. Иначе зачем она, можно просто показать фон определённого цвета.

**** ()
[#] Ответ на: комментарий от alex_custov 30.08.2010 1:06:08  
andreyu

> "шахматка" имхо должна быть под изображенем (и только под ним), когда оно может иметь альфа канал. Иначе зачем она, можно просто показать фон определённого цвета.

Я с вами не согласен. Если это нужно для определения границ изображения, то режим отображения бордюра включается параметром -b или клавишей <B>.

***** ()
[#] Ответ на: комментарий от undertaker 30.08.2010 11:09:02  
andreyu

> Скажите, а ваш просмотрщик умеет работу с большими растровыми изображениями, так, как, например, видит это Витус:
> http://groups.google.com/group/linux.debian.user.russian/browse_thread/thread...


Нет, сейчас он работает с изображениями, которые умещаются _распакованными_ в память. При этом создается множество текстур. Но после загрузки работа с изображением выполняется очень быстро. К примеру с изображениями разрешением 10 000 х 15 000 вьвер справляется, но память жрет не по детски.

В планах есть пункт по поддержке изображений любого размера.

***** ()
[#]  
andreyu

Добавил поддержку многостраничного TIFF, исправил несколько багов. Забирать из репозитория.

***** ()
[#] Ответ на: комментарий от undertaker 30.08.2010 11:09:02  

Просмоторщик Openev умеет это делать http://openev.sourceforge.net/. (Он использует библиотеку GDAL).

При этом не использует свап и расходует лишь несколько десятков мегабайт озу.

Он специально создан для просмотра фотографий гига-размеров.

()
[#]  

Исправили ли этот баг ?

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

Я от этого глюка был в шоке.

()
[#] Ответ на: комментарий от xcreatepixmap 31.08.2010 11:55:47  
andreyu

> Просмоторщик Openev умеет это делать http://openev.sourceforge.net/. (Он использует библиотеку GDAL).

Хорошая штука, но узко специализированная. А какие форматы он поддерживает?

***** ()
[#] Ответ на: Исправили ли этот баг ? от xcreatepixmap 31.08.2010 12:01:26  
andreyu

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

Не замечал этого бага. Посмотрю ,в чем проблема.

> Я от этого глюка был в шоке.


Какой вы впечатлительный ;)

***** ()