PictureView 3 — просмотр изображений различных форматов

Здесь можно обсудить ваш любимый плагин.
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

В этой теме обсуждается плагин PictureView 3.
Старый тред с обсуждением предыдущих версий: PictureView 1 и 2.

Дальнейшее развитие версии 1.5, переделано под API Far 3.0.



Об извлечении плагинов из дистрибутивов ACDSee.


PS: API как было убогим в Far 2, так и осталось...
Attachments
PictureView3_20140813_last_xp.7z
Последняя версия, работающая на WinXP
(321.22 KiB) Downloaded 1185 times
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

Latest post of the previous page:

SEt wrote: Wed 22 Aug, 2018 16:59 Интересно услышать отзывы.
Проверил на паре картинок шириной 4-5К (PNG/JPEG) — вторая цифра уменьшилась на ~20 (с ~115/150). Но у третьей подобной картинки (JPEG) чуток подросла (на ~0-10 от ~130). Т.ч. как-то неоднозначно.
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

HaRT wrote: Wed 22 Aug, 2018 18:26А откуда для PDF берётся размер картинки в пикселях?
Это нигде не настраивается. Подозреваю, что в libgfl просто захардкодено какое-то низкое значение dpi, которое передаётся Ghostscript'у.

HaRT wrote: Wed 22 Aug, 2018 19:03Проверил на паре картинок шириной 4-5К
Для полезности информации необходимо добавить:
1) процессор (сколько ядер/тредов), 2) декодер (JpegRec или нет здесь сильно влияет), 3) площадь (примерная) картинки в мегапикселях.
Если ускорения не видно, то интересно, на сколько загружается процессор, если отключить "Опережающее декодирование" и подержать F5 на этом файле.
И это всё про постпроцессинг, который в заголовке называется "AutoY" (не "AutoLevels").
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

SEt wrote: Wed 22 Aug, 2018 20:17 1) процессор (сколько ядер/тредов)
Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz, 4 ядра, 8 тредов.
SEt wrote: Wed 22 Aug, 2018 20:17
SEt wrote: Wed 22 Aug, 2018 20:17 2) декодер (JpegRec или нет здесь сильно влияет), 3) площадь (примерная) картинки в мегапикселях.
[...]
И это всё про постпроцессинг, который в заголовке называется "AutoY" (не "AutoLevels").
transparent.png 4813 x 1888 x 32b 28% 20/869 - PictureView by GDI+ : PNG 164+82+10ms <AutoY>
IMG_1896_2.jpg 5171 x 3446 x 24b 26% 27/869 - PictureView by JpegRec [Progressive 444 qP12 r0] 283+126+0ms <AutoY>
foto2.jpg 4665 x 2953 x 32b 28% 28/869 - PictureView by JpegRec [Sequential 4444 YCCK qp12 R0] 167+134+1ms <AutoY>
SEt wrote: Wed 22 Aug, 2018 20:17 на сколько загружается процессор, если отключить "Опережающее декодирование" и подержать F5 на этом файле.
foto2.jpg CPU: ~31% (поначалу чуть больше; кстати, с включенным опережающим декодированием показатель тот же), при этом вторая цифра прыгала в диапазоне 60-80 (против прежних 130).
P.S.
Любопытно, у «медленного» JPEGа (foto2.jpg) 32 бита на пиксель, а не обычные 24.
И вообще, вот что про них пишет ExifTool:
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

По foto2.jpg никакой постпроцессинг вообще не работает – оно YCCK(≈CMYK), так что все колебания времени исключительно из-за отрисовки. (Я не знаю, как адекватно и не жутко медленно там считать постпроцессинг.)

Уменьшение второй цифры при постоянной нагрузке легко объяснить – видеокарта выходит из энергосберегающего режима.

В остальных случаях ускорение постпроцессинга (разница средних значений второй цифры с постпроцессингом и без) от OpenMP, наверное, раза в 2.

PS: Кто-нибудь понимает, что пишет JpegRec в [] на предпоследнем месте?
Last edited by SEt on Wed 22 Aug, 2018 21:46, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

SEt wrote: Wed 22 Aug, 2018 20:17 Подозреваю, что в libgfl просто захардкодено какое-то низкое значение dpi, которое передаётся Ghostscript'у.
Как я понимаю, PictureView вызывает ф-ю gflLoadBitmap/gflLoadBitmapFromMemory, в которую передаётся заполненная структура GFL_LOAD_PARAMS, а вот уже в ней есть поле EpsDpi, в которое, подозреваю, и надо положить желаемое значение — например, 300 или 600. Сложно ли вам попробовать это сделать? А то с 72 DPI как-то маловато пользы от просмотра PDF/PS…
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

Опс, действительно, настраивается. Проглядел...

Вот на испытание версии с 200 и 300 dpi. Уже 300 может довольно сильно тормозить. Опцию для этого делать пока не хочется, так что выбирайте.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

SEt wrote: Fri 24 Aug, 2018 03:29 Вот на испытание версии с 200 и 300 dpi.
Спасибо!
SEt wrote: Fri 24 Aug, 2018 03:29 Уже 300 может довольно сильно тормозить.
На сканах не тормозит (т.к. нет растеризации), а на документах да, случается, но для меня приемлемо. Правда, на одной книжке намертво зависает (в весьма замысловатом сценарии; через несколько минут развисает), но это, вероятно, надо чинить в GFL SDK или в Ghostscript. Кстати, сложно ли сделать, чтобы и тут работало прерывание по Esc?
SEt wrote: Fri 24 Aug, 2018 03:29 Опцию для этого делать пока не хочется
Зачем опцию? Есть же используемые в JpegRec кнопкосочетания Shift/Alt+F5 для переключения фактически параметра декодирования. Сложно ли и для декодера GFL использовать подобный же механизм управления? (Предлагаю градации 72, 150, 300, 600, 1200 DPI.)
Last edited by HaRT on Fri 24 Aug, 2018 14:29, edited 1 time in total.
Reason: Добавлено уточнение про развисание
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

Новая версия:
  • GFL декодер позволяет по Shift/Alt+F5 изменять используемое DPI для PDF/PS/EPS файлов, текущее DPI отображается в заголовке.
  • Добавлено некоторое количество костылей.

Сделано. Но, честно говоря, декодер PDF в GFL не очень: даже с костылями он не только тормозит, но и понимает не все PDF, вместо некоторых страниц упорно декодирует первую, не освобождает выделяемую на каждую страницу память до выхода (или рефреша в PV с изменением DPI).
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

SEt wrote: Fri 24 Aug, 2018 18:18Сделано
Спасибище!
SEt wrote: Fri 24 Aug, 2018 18:18 декодер PDF в GFL не очень
Вы нас предупредили, недостатки расписали, соответственно, к PictureView никаких претензий.
SEt wrote: Fri 24 Aug, 2018 18:18 GFL декодер позволяет по Shift/Alt+F5 изменять используемое DPI для PDF/PS/EPS файлов
Вот бы это ещё и было упомянуто в соответствующей секции Readme.txt
SEt wrote: Fri 24 Aug, 2018 18:18 текущее DPI отображается в заголовке
А насколько сложно при выходе из плагина попросить Фар обновить заголовок окна? А то остаётся «картиночный» и в таскбаре сбивает с толку…
HaRT wrote: Fri 24 Aug, 2018 13:11 Кстати, сложно ли сделать, чтобы и тут работало прерывание по Esc?
Можете ли прокомментировать?
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

HaRT wrote: Fri 24 Aug, 2018 18:47
SEt wrote: Fri 24 Aug, 2018 18:18 текущее DPI отображается в заголовке
А насколько сложно при выходе из плагина попросить Фар обновить заголовок окна? А то остаётся «картиночный» и в таскбаре сбивает с толку…
У Far сейчас есть цивилизованный способ попросить его перерисовать заголовок? (Вариант сохранить самому/восстановить мне не нравится, так как так можно сохранить "Файл проверяется в..." или ещё что не то.)
HaRT wrote: Fri 24 Aug, 2018 18:47
HaRT wrote: Fri 24 Aug, 2018 13:11 Кстати, сложно ли сделать, чтобы и тут работало прерывание по Esc?
Можете ли прокомментировать?
А разве на GFL при открытии по имени можно как-то повлиять? Esc хоть и работает более агрессивно, но всё же цивилизованно.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

SEt wrote: Fri 24 Aug, 2018 19:58 У Far сейчас есть цивилизованный способ попросить его перерисовать заголовок?
Не знаю, насколько это цивилизованно, но
DrKnS wrote: Fri 29 Apr, 2016 07:47 На будущее: можно полностью переложить заботы по установке/восстановлению заголовка консоли на Far, создав диалог и меняя уже его заголовок, например.
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

Нет, менять заголовок окна через создание фиктивного диалога совершенно не хочется.

Я бы предпочёл, чтобы Far или сам перерисовывал заголовок после вызова плагинов, или хотя бы предоставлял цивилизованный способ это сделать через API. (Например, почему бы AdvControl(ACTL_REDRAWALL) не перерисовать заголовок?)

PS: Запустил под новым Far'ом – обнаружил ещё один забавный эффект: раньше при запуске по префиксу через "pic:name.ext<space>" Far срезал конечный пробел, а теперь не срезает. Даже и не знаю, правильно как было, как сейчас или плагин теперь должен срезать этот пробел.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

beringov wrote: Sun 15 Jul, 2018 08:37 А есть ли способ смотреть векторные .eps, .svg, .ai ?
EPS и AI теперь можно (читай сообщения выше), SVG вроде по-прежнему никак (во всяком случае, у меня не получилось).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

SEt wrote: Fri 24 Aug, 2018 18:18 текущее DPI отображается в заголовке
Для *.ai не отображается, хотя влияет: chromium.ai 13199 x 10199 x 24b 10% 6/14 - PictureView by GFL : ai [Uncompressed] 1789+1314+195ms <AutoY>. Хотелось бы, чтобы и влияло, и отображалось.
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 526
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 46 times

PictureView 3 — просмотр изображений различных форматов

Post by SEt »

Да, для *.ai не было отображения. Добавил, будет в следующей версии. (Но их GFL умеет совсем плохо: края обрезаны, декодирует по 10+ секунд.)

А SVG, вроде, GFL никогда и не умел.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

PictureView 3 — просмотр изображений различных форматов

Post by HaRT »

SEt wrote: Mon 27 Aug, 2018 23:45 Добавил, будет в следующей версии.
Спасибо
SEt wrote: Mon 27 Aug, 2018 23:45 Но их GFL умеет совсем плохо: края обрезаны, декодирует по 10+ секунд.
Всё же не везде одинаково плохо. исходники иконочек просмотреть вполне годится.
SEt wrote: Mon 27 Aug, 2018 23:45 А SVG, вроде, GFL никогда и не умел.
Весьма вероятно. XnView их смотрит только через плагин (в т.ч. умеет перекодировать посредством rsvg-convert.exe), но какая библиотека при этом задействуется, я не изучал.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Обсуждение плагинов”