LINUX.ORG.RU

Simple Viewer GL 3.3.1

 , , , ,


0

1

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

Многое из того, что раньше делалось на CPU, теперь выполняется на GPU.

В строке статуса, которую можно отключать клавишей i, отображается базовая информация: формат, разрешение, размер в памяти (CPU + GPU), размер на диске. В режиме информации о пикселе, который включается клавишей p, отображается бабл с информацией о позиции, цвете пикселя, параметрах выделенной области.

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

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

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

  • PNG
  • JPEG
  • JPEG 2000
  • HEIF
  • PSD (Adobe Photoshop)
  • AI (Adobe Illustrator)
  • EPS
  • XCF (GIMP)
  • GIF
  • SVG
  • TIFF
  • TARGA
  • ICO
  • ICNS (Apple Icon Image)
  • BMP
  • PNM
  • DDS
  • XWD
  • SCR (ZX-Spectrum screen)
  • XPM
  • WebP
  • OpenEXR

Поддерживаются GNU/Linux, FreeBSD и macOS. Существует сторонний форк для Windows.

Новое в Simple Viewer GL 3.3.1:

  • переработана архитектура вьювера;
  • а потому и новый чуть более гибкий рендерер;
  • благодаря рендереру профили и прочие преобразования перенёс с CPU на GPU;
  • благодаря переработанной архитектуре починил и загрузку, и прогресс (спиннер);
  • значительно снизился расход памяти. Теперь память по возможности выделяется только под несколько чанков. Нет полной распакованной копии изображения в памяти;
  • информация о пикселе тянется из видеокарты;
  • счётчик расхода памяти учитывает видеопамять;
  • добавил превью для форматов которые его поддерживают. Если есть превью в EXIF, то беру из него;
  • переработал интерфейс. Переделал рендерер, обновил и ImGui из ветки с поддержкой докинга окон;
  • новый попап EXIF в доке справа, а в него добавил категории и поиск;
  • переработал панель статуса. Просто сделал удобнее её внутри, а заодно поправил визуал;
  • теперь панель статуса не перекрывает изображение. И вообще, любое закреплённое у края окно не перекрывает изображение;
  • расширил поддержку PSD. Теперь поддерживаются практически все вариации;
  • добавил поддержку HEIF (AVIF/HEIC);
  • починил greyscale jpeg2k – теперь яркость корректная;
  • добавил поддержку цветовых профилей там, где их не было, но формат их поддерживал;
  • и ещё кучу того, что и вспомнить не могу, а логи читайте сами, мне лень.

Наверняка что-нибудь отломал, поэтому буду рад замечаниям и советам.

Лицензия GPL-2.0.

>>> Simple Viewer GL on GitHub

★★★★★

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

Нет. Я называю процессорами то, что может исполнять код независимо и одновременно с другими процессорами. Не все ядра GPU это могут, например. в невидиях ядер бывает дохрена, а compute units OpenCL’я всего десяток. А вот CPU с несколькими ядрами с точки зрения выполнения кода обычно не отличаются от нескольких одноядерных CPU, хотя и тут бывают исключения.

Да и вообще, ты не в курсе что-ли, что CPU означает Central Processing Unit или Центральный Процессорный Узел, а не процессор? Или что Processor Core - это Ядро Процессора, а не процессор.

Впрочем, неудивительно. Нынче даже на ЛОРе попадаются пассажиры которые системный блок процессором называют…

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

Так много слов для демонстрации знаний. Столько опыта в разработке под GPU. Крепкое знание устройства JPEG.

Но где же код, который все это демонстрирует?

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

Но где же код, который все это демонстрирует?

Ты предлагаешь мне писать велосипед? :) Я что, на растолюба какого похож? В инете полно опенсурсных примеров распаковки и декодирования всего что только можно на OpenCL.

Мне совершенно не интересно писать 100500й вьювер картинок для линукса, мне несколько более занятные вещи интересны. Ну и даже если мне вдруг, по ходу дела срочно понадобится аццки быстрая разжималка JPEG на GPU, то я-то знаю как её написать. Мне непонятно другое - почему писателям 100500го вьювера это совершенно неинтересно. Неужто кроме как накидать в каком-нибудь IDE кучу стандартных либ со всеми их недостатками, вообще не разбираясь что там за форматы, сжатие, распаковка и как они работают, писатели 100500го вьювера, даже те, у кого что-то пристойное получается, неспособны?

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

то я-то знаю как её написать

Никогда не вникал в детали, но уверен, что всё знаешь? Это же буквально иллюстрация эффекта Даннинга-Крюгера.

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

Никогда не вникал в детали, но уверен, что всё знаешь?

Я знаю как устроен JPEG, я знаю как писать на OpenCL, у меня есть все кирпичики чтобы сделать то, что требуется. Да, я уверен что смогу написать.

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

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

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

Я знаю как устроен JPEG

Судя по твоим заявлениям ты примерно знаешь, как устроено сжатие, но только примерно.

Да, я уверен что смогу написать.

Он будет быстрее libjpeg/libjpeg-turbo? Доказать делом сможешь?

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

Судя по твоим заявлениям ты примерно знаешь, как устроено сжатие, но только примерно.

Мне совершенно насрать, что ты там про меня думаешь. Вот вообще насрать.

Он будет быстрее libjpeg/libjpeg-turbo?

На порядки.

Доказать делом сможешь?

Да, конечно смогу, если мне это зачем-то понадобится.

Stanson ★★★★★
()
Ответ на: комментарий от i-rinat

Судя по

Не надо бы по себе судить...

Он будет быстрее libjpeg/libjpeg-turbo? Доказать делом сможешь?

А зачем кому-то тебе что-то доказывать?? Не все же «пятый класс, вторая четверть», и не все поведутся на твоё деЦЦкое «А тебе слабо??..»... :)

Хочешь «доказательств»? - «Личным примером!»... :)

Ждём-с... ;))

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

А зачем кому-то тебе что-то доказывать?

Тот, кто делает заявление, обязан его обосновывать, а не тот, кто его отрицает.

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

Тот, кто делает заявление, обязан его обосновывать, а не тот, кто его отрицает.

В общем случае - да. Но не в случае, когда человек говорит о себе «Я знаю, как это устроено; я знаю, как это сделать; и я смогу это сделать, если мне это понадобится».

Не в этом случае он должен «доказывать» невесть кому - досужему зеваке, по сути - наличие у него знаний и свою способность эти знания реализовать «в металле», если ему это потребуется...

Утверждаешь, что он не знает и не сумеет - вот ты это своё утверждение и доказывай. А он - и только он сам! - знает, какими знаниями и навыками обладает, и никому это доказывать не обязан.

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

А пока что - вот так, как я изложил выше... :)

P.S. Ты вот спешишь заявить, что он ничего не знает и не умеет, а я, как сторонний наблюдатель, вижу в его лице человека взрослого, степенного, спокойного и рассудительного, и склонен ему верить. Тем более, что в части операционных усилителей, макарон с тушенкой и работы с древесиной он тоже «в теме». Я это вижу, потому что такие навыки и знания есть и у меня, и я в состоянии оценить и увидеть, что человек «в теме» и за слова свои явно отвечает... :)

Вот. Как-то так... :)

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

что он не знает и не сумеет - вот ты это своё утверждение и доказывай.

Раз уж ты притянул «пятый класс», попробую объяснить на примере школы. Вот вызвался ученик отвечать, и заявляет, что тему знает. На вопросы ответить не может. Ему ставят двойку. И тут его сосед по парте начинает требовать с учителя доказать, что первый ученик не знает тему. В это время первый ученик пальцы гнёт, заявляя, что он всё сможет рассказать, когда ему понадобится.

Ты вот спешишь заявить, что он ничего не знает и не умеет

Я говорил только про JPEG. Мы тут обсуждаем параллелизм в декодировании JPEG. За верой это в другую дверь.

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

Раз уж ты притянул «пятый класс», попробую объяснить на примере школы. Вот вызвался ученик отвечать, и заявляет, что тему знает. На вопросы ответить не может. Ему ставят двойку. И тут его сосед по парте начинает требовать с учителя доказать, что первый ученик не знает тему. В это время первый ученик пальцы гнёт, заявляя, что он всё сможет рассказать, когда ему понадобится.

Некорректный пример.

Ты вот спешишь заявить, что он ничего не знает и не умеет

Я говорил только про JPEG. Мы тут обсуждаем параллелизм в декодировании JPEG.

Я заметил. А вот ты, Ринат, явно не понял, о чём я... :)

За верой это в другую дверь

А за неспособностью понимать мало-мальски «отвлечённые» тексты - в какую?.. ;)

Вопрос риторический, отвечать не обязательно. :))

И, пожалуй, закончим на этом... Лично я для себя уже выяснил всё, что мне хотелось понять... А декодировать JPEG мне не нужно и в обозримом будущем я это делать наверняка не буду, поэтому «прекращаю (не?)дозволенные речи»... :)

Somebody ★★★★
()
Последнее исправление: Somebody (всего исправлений: 2)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.