PictureView 3 — просмотр изображений различных форматов
PictureView 3 — просмотр изображений различных форматов
В этой теме обсуждается плагин PictureView 3.
Старый тред с обсуждением предыдущих версий: PictureView 1 и 2.
Дальнейшее развитие версии 1.5, переделано под API Far 3.0.
Об извлечении плагинов из дистрибутивов ACDSee.
PS: API как было убогим в Far 2, так и осталось...
Старый тред с обсуждением предыдущих версий: 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 1227 times
PictureView 3 — просмотр изображений различных форматов
Latest post of the previous page:
У Far3 есть множество принципиальных различий от far2 из-за которых пользователи на него не переходят, в том числе и я. И плагины специально пишутся для двух платформ.Попробуйте Far3 с «родной» версией плагина.
PictureView 3 — просмотр изображений различных форматов
Так и есть, и при изменении масштаба менее 50%, цвета отображаются нормально. Проверил на другом компе (версии far и плагина те же, железо и софт другие, винда и там и там 7), то же самое с цветами, искажения при масштабе более 50%.
PictureView 3 — просмотр изображений различных форматов
Попробовал. Та же проблема. То есть проблема чисто моя, но как исправить не пойму.
upd
надо было в настройках плагина снять галочку у "sRGB gamma aware". Все заработало.
Last edited by Serg_Ekb on Sat 12 Sep, 2020 19:21, edited 2 times in total.
PictureView 3 — просмотр изображений различных форматов
Отрисовка в версиях для Far3 и Far1 должна совпадать полностью (так как Far в этом никак не участвует).
Случайная инверсия цветов – типичная проблема с некорректной реализацией sRGB в некоторых драйверах (особенно этим страдают старые драйвера Intel). Как было замечено, лечится выключением sRGB режима или поиском более удачной версии видеодрайвера.
Случайная инверсия цветов – типичная проблема с некорректной реализацией sRGB в некоторых драйверах (особенно этим страдают старые драйвера Intel). Как было замечено, лечится выключением sRGB режима или поиском более удачной версии видеодрайвера.
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
PictureView 3 — просмотр изображений различных форматов
Наблюдаю вылеты при открытии/закрытии определённых сканов (при работе через Remote Desktop, напрямую проверить пока не могу):
1. При попытке
2. При выходе из просмотра того PDF-файла:
Сами сканы содержат персональные данные, поэтому выложить в открытый доступ не могу, но готов переслать частным образом. Других картинок, приводящих к такому вылету, за разумное время не нашёл.
Win 8.1 x64; Far Manager, version 3.0.5675.0 x86; PictureView 3.2019.10.9 (без других плагинов).
Кроме того, обнаружилось, что если имя PDF-файла содержит «юникодные» символы (например, китайские иероглифы или хотя бы знак рубля ₽), то такой файл на просмотр не открывается. Это возможно починить на стороне PictureView?
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
PictureView 3 — просмотр изображений различных форматов
С 1,2 скорее всего ничего не сделать – падает оно внутри системы в функции "показать нарисованный кадр". Попробуйте на нормальном реальном железе – не должно быть проблем с теми же файлами.
А вот PDF-файлы должны работать.
1) Проверьте, что libgfl340.dll юникодная – экспортирует gflLoadBitmapW.
2) Если это так и всё равно не работает – тогда пример файла.
А вот PDF-файлы должны работать.
1) Проверьте, что libgfl340.dll юникодная – экспортирует gflLoadBitmapW.
2) Если это так и всё равно не работает – тогда пример файла.
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
PictureView 3 — просмотр изображений различных форматов
Если не забуду, проверю, когда окажусь физически за тем компом (неизвестно когда).
Через плагин 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
экспортируется.
Обнаружил-то я эту ошибку тоже на сканах, но сейчас проверяю так: скачал https://brendanzagaeski.appspot.com/minimal.pdf; убедился, что он просматривается; переименовал в
minimal₽.pdf
; убедился, что теперь он НЕ просматривается (при вызове плагина ничего видимого не происходит); переименовал обратно — снова просматривается.Фар есть инструмент, а не нянька. © 2009 DrKnS
PictureView 3 — просмотр изображений различных форматов
Действительно, не работает. Похоже, что внутри GFL путь для PDF не юникодный.
Могу предложить запускать такие PDF по префиксу через короткое имя, правда тогда не будут работать переходы между файлами.
Может проще прикрутить к PV нормальный декодер PDF через pvd или есть какой-то WIC кодек, который можно установить в систему?
Могу предложить запускать такие PDF по префиксу через короткое имя, правда тогда не будут работать переходы между файлами.
Может проще прикрутить к PV нормальный декодер PDF через pvd или есть какой-то WIC кодек, который можно установить в систему?
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
PictureView 3 — просмотр изображений различных форматов
Нет ли других возможных объяснений? Желательно таких, на которые мы можем повлиять в конструктивном ключе?
И что если попробовать для PDF вызывать не
gflLoadBitmapW
, а gflLoadBitmap
, но с путём в UTF-8?
Увы, не владею вопросом.
Я не смог найти бесплатный, нашёл только FastPictureViewer Codec Pack.
Last edited by HaRT on Thu 15 Oct, 2020 14:54, edited 1 time in total.
Reason: Добавлен вопрос про gflLoadBitmap и UTF-8
Reason: Добавлен вопрос про gflLoadBitmap и UTF-8
Фар есть инструмент, а не нянька. © 2009 DrKnS
PictureView 3 — просмотр изображений различных форматов
Нет, оно там строит текстовый файлик для Ghostscript, прогоняя строчки через WideCharToMultiByte(CP_ACP).
И пока копался я там переполнение буфера нашёл в GFL...
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
PictureView 3 — просмотр изображений различных форматов
Печально. На практике это означает, что попытка просмотреть специально сформированную картинку/документ через libgfl может привести к выполнению произвольного кода, заложенного злоумышленником.
А можно пару слов, когда эта уязвимость проявляется, а когда нет?
Фар есть инструмент, а не нянька. © 2009 DrKnS
PictureView 3 — просмотр изображений различных форматов
Я нашёл только про имя файла, но попасть туда довольно сложно.
PictureView 3 — просмотр изображений различных форматов
SEt, возможно ли для строки заголовка сделать так, чтобы параметр \I (текущий файл и общее кол-во файлов) считал только файлы изображений? В настоящий момент он даже ".." учитывает, это сбивает с толку при листании изображений в папке. А также просьба добавить параметр, с помощью которого можно было бы вывести в заголовок размер файла в KiB.
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
PictureView 3 — просмотр изображений различных форматов
Вот да, конкретно это я тоже заметил недавно. Т.е. если для обычных директорий я ещё могу представить, что каждая из них соответствует одной картинке в каком-то формате, то
..
в подсчёте точно лишняя.Фар есть инструмент, а не нянька. © 2009 DrKnS
PictureView 3 — просмотр изображений различных форматов
Версия для Far1 так и делает (исключает каталоги). Для Far3 выдаётся общее количество элементов панели, так как в API теперь нет быстрого способа узнать, файл или каталог каждый элемент.
Подумаю. Возможно, сделаю в следующей версии.
- buniak_a_h
- Posts: 4265
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
PictureView 3 — просмотр изображений различных форматов
Такое не считается быстрым? Прошу прощения, если в синтаксисе напорол - на C с 94-го года прошлого тысячелетия не писал… Но идея понятна
Code: Select all
PanelControl(PANEL_ACTIVE, FCTL_GETPANELITEM, i, &pri);
if (pri->item.FileAttributes & FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY)