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

Здесь можно обсудить ваш любимый плагин.
SEt
Posts: 473
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 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 794 times
Serg_Ekb
Posts: 14
Joined: Thu 17 Oct, 2019 13:43

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

Post by Serg_Ekb »

Latest post of the previous page:

Попробуйте Far3 с «родной» версией плагина.
У Far3 есть множество принципиальных различий от far2 из-за которых пользователи на него не переходят, в том числе и я. И плагины специально пишутся для двух платформ.
Serg_Ekb
Posts: 14
Joined: Thu 17 Oct, 2019 13:43

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

Post by Serg_Ekb »

HaRT wrote: Sat 12 Sep, 2020 14:49 Так они там не просто искажаются, а, очевидно, красный с синим перепутаны
Так и есть, и при изменении масштаба менее 50%, цвета отображаются нормально. Проверил на другом компе (версии far и плагина те же, железо и софт другие, винда и там и там 7), то же самое с цветами, искажения при масштабе более 50%.
Serg_Ekb
Posts: 14
Joined: Thu 17 Oct, 2019 13:43

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

Post by Serg_Ekb »

HaRT wrote: Sat 12 Sep, 2020 14:49 Попробуйте Far3 с «родной» версией плагина.
Попробовал. Та же проблема. То есть проблема чисто моя, но как исправить не пойму.
upd
надо было в настройках плагина снять галочку у "sRGB gamma aware". Все заработало.
Last edited by Serg_Ekb on Sat 12 Sep, 2020 19:21, edited 2 times in total.
SEt
Posts: 473
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

Отрисовка в версиях для Far3 и Far1 должна совпадать полностью (так как Far в этом никак не участвует).

Случайная инверсия цветов – типичная проблема с некорректной реализацией sRGB в некоторых драйверах (особенно этим страдают старые драйвера Intel). Как было замечено, лечится выключением sRGB режима или поиском более удачной версии видеодрайвера.
User avatar
HaRT
Moderator
Posts: 9552
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

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

Post by HaRT »

Наблюдаю вылеты при открытии/закрытии определённых сканов (при работе через Remote Desktop, напрямую проверить пока не могу):
1. При попытке CtrlPgDn на том JPG-файле:
2. При выходе из просмотра того PDF-файла:
Сами сканы содержат персональные данные, поэтому выложить в открытый доступ не могу, но готов переслать частным образом. Других картинок, приводящих к такому вылету, за разумное время не нашёл.
Win 8.1 x64; Far Manager, version 3.0.5675.0 x86; PictureView 3.2019.10.9 (без других плагинов).

Кроме того, обнаружилось, что если имя PDF-файла содержит «юникодные» символы (например, китайские иероглифы или хотя бы знак рубля ₽), то такой файл на просмотр не открывается. Это возможно починить на стороне PictureView?
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 473
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

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

А вот PDF-файлы должны работать.
1) Проверьте, что libgfl340.dll юникодная – экспортирует gflLoadBitmapW.
2) Если это так и всё равно не работает – тогда пример файла.
User avatar
HaRT
Moderator
Posts: 9552
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

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

Post by HaRT »

SEt wrote: Thu 15 Oct, 2020 11:28 Попробуйте на нормальном реальном железе – не должно быть проблем с теми же файлами.
Если не забуду, проверю, когда окажусь физически за тем компом (неизвестно когда).
SEt wrote: Thu 15 Oct, 2020 11:28 1) Проверьте, что libgfl340.dll юникодная – экспортирует gflLoadBitmapW.
Через плагин Process list посмотрел, какую libgfl340.dll грузит Фар; с удивлением обнаружил, что C:\Program Files (x86)\SageThumbs\32\libgfl340.dll; через fc /b убедился, что файл идентичен C:\Program Files (x86)\Far Manager\Plugins\PictureView\libgfl340.dll; через плагин ImpEx удостоверился, что символ gflLoadBitmapW экспортируется.
SEt wrote: Thu 15 Oct, 2020 11:28 2) Если это так и всё равно не работает – тогда пример файла.
Обнаружил-то я эту ошибку тоже на сканах, но сейчас проверяю так: скачал https://brendanzagaeski.appspot.com/minimal.pdf; убедился, что он просматривается; переименовал в minimal₽.pdf; убедился, что теперь он НЕ просматривается (при вызове плагина ничего видимого не происходит); переименовал обратно — снова просматривается.
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 473
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

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

Может проще прикрутить к PV нормальный декодер PDF через pvd или есть какой-то WIC кодек, который можно установить в систему?
User avatar
HaRT
Moderator
Posts: 9552
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

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

Post by HaRT »

SEt wrote: Thu 15 Oct, 2020 14:10 Похоже, что внутри GFL путь для PDF не юникодный.
Нет ли других возможных объяснений? Желательно таких, на которые мы можем повлиять в конструктивном ключе?
И что если попробовать для PDF вызывать не gflLoadBitmapW, а gflLoadBitmap, но с путём в UTF-8?
SEt wrote: Thu 15 Oct, 2020 14:10 Может проще прикрутить к PV нормальный декодер PDF через pvd
Увы, не владею вопросом.
SEt wrote: Thu 15 Oct, 2020 14:10 есть какой-то WIC кодек, который можно установить в систему?
Я не смог найти бесплатный, нашёл только FastPictureViewer Codec Pack.
Last edited by HaRT on Thu 15 Oct, 2020 14:54, edited 1 time in total.
Reason: Добавлен вопрос про gflLoadBitmap и UTF-8
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 473
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

HaRT wrote: Thu 15 Oct, 2020 14:41
SEt wrote: Thu 15 Oct, 2020 14:10 Похоже, что внутри GFL путь для PDF не юникодный.
Нет ли других возможных объяснений? Желательно таких, на которые мы можем повлиять в конструктивном ключе?
И что если попробовать для PDF вызывать не gflLoadBitmapW, а gflLoadBitmap, но с путём в UTF-8?
Нет, оно там строит текстовый файлик для Ghostscript, прогоняя строчки через WideCharToMultiByte(CP_ACP).

И пока копался я там переполнение буфера нашёл в GFL...
User avatar
HaRT
Moderator
Posts: 9552
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

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

Post by HaRT »

SEt wrote: Thu 15 Oct, 2020 15:39 И пока копался я там переполнение буфера нашёл в GFL...
Печально. На практике это означает, что попытка просмотреть специально сформированную картинку/документ через libgfl может привести к выполнению произвольного кода, заложенного злоумышленником.
А можно пару слов, когда эта уязвимость проявляется, а когда нет?
Фар есть инструмент, а не нянька. © 2009 DrKnS
SEt
Posts: 473
Joined: Mon 21 Mar, 2005 10:22
Location: Питер
Been thanked: 27 times

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

Post by SEt »

Я нашёл только про имя файла, но попасть туда довольно сложно.
Post Reply

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