Дальнейшее развитие версии 1.5, переделано под API Far 3.0.
Декодер JLS.pvd использует библиотеку CharLS.
Copyright (c) 2007-2010, Jan de Vaan
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of my employer, nor the names of its contributors may be
used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PS: API как было убогим в Far 2, так и осталось...
PictureView 3 — просмотр изображений различных форматов
Posted: Fri 24 Aug, 2018 18:18
by SEt
Latest post of the previous page:
Новая версия:
GFL декодер позволяет по Shift/Alt+F5 изменять используемое DPI для PDF/PS/EPS файлов, текущее DPI отображается в заголовке.
Добавлено некоторое количество костылей.
Сделано. Но, честно говоря, декодер PDF в GFL не очень: даже с костылями он не только тормозит, но и понимает не все PDF, вместо некоторых страниц упорно декодирует первую, не освобождает выделяемую на каждую страницу память до выхода (или рефреша в PV с изменением DPI).
PictureView 3 — просмотр изображений различных форматов
SEt wrote: ↑Fri 24 Aug, 2018 18:18
текущее DPI отображается в заголовке
А насколько сложно при выходе из плагина попросить Фар обновить заголовок окна? А то остаётся «картиночный» и в таскбаре сбивает с толку…
У Far сейчас есть цивилизованный способ попросить его перерисовать заголовок? (Вариант сохранить самому/восстановить мне не нравится, так как так можно сохранить "Файл проверяется в..." или ещё что не то.)
HaRT wrote: ↑Fri 24 Aug, 2018 13:11
Кстати, сложно ли сделать, чтобы и тут работало прерывание по Esc?
Можете ли прокомментировать?
А разве на GFL при открытии по имени можно как-то повлиять? Esc хоть и работает более агрессивно, но всё же цивилизованно.
PictureView 3 — просмотр изображений различных форматов
Posted: Fri 24 Aug, 2018 20:31
by HaRT
SEt wrote: ↑Fri 24 Aug, 2018 19:58
У Far сейчас есть цивилизованный способ попросить его перерисовать заголовок?
Не знаю, насколько это цивилизованно, но
DrKnS wrote: ↑Fri 29 Apr, 2016 07:47 На будущее: можно полностью переложить заботы по установке/восстановлению заголовка консоли на Far, создав диалог и меняя уже его заголовок, например.
PictureView 3 — просмотр изображений различных форматов
Posted: Fri 24 Aug, 2018 21:11
by SEt
Нет, менять заголовок окна через создание фиктивного диалога совершенно не хочется.
Я бы предпочёл, чтобы Far или сам перерисовывал заголовок после вызова плагинов, или хотя бы предоставлял цивилизованный способ это сделать через API. (Например, почему бы AdvControl(ACTL_REDRAWALL) не перерисовать заголовок?)
PS: Запустил под новым Far'ом – обнаружил ещё один забавный эффект: раньше при запуске по префиксу через "pic:name.ext<space>" Far срезал конечный пробел, а теперь не срезает. Даже и не знаю, правильно как было, как сейчас или плагин теперь должен срезать этот пробел.
PictureView 3 — просмотр изображений различных форматов
Posted: Mon 27 Aug, 2018 17:08
by HaRT
beringov wrote: ↑Sun 15 Jul, 2018 08:37
А есть ли способ смотреть векторные .eps, .svg, .ai ?
EPS и AI теперь можно (читай сообщения выше), SVG вроде по-прежнему никак (во всяком случае, у меня не получилось).
PictureView 3 — просмотр изображений различных форматов
Posted: Mon 27 Aug, 2018 17:18
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>. Хотелось бы, чтобы и влияло, и отображалось.
PictureView 3 — просмотр изображений различных форматов
Posted: Mon 27 Aug, 2018 23:45
by SEt
Да, для *.ai не было отображения. Добавил, будет в следующей версии. (Но их GFL умеет совсем плохо: края обрезаны, декодирует по 10+ секунд.)
А SVG, вроде, GFL никогда и не умел.
PictureView 3 — просмотр изображений различных форматов
Posted: Tue 28 Aug, 2018 00:01
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), но какая библиотека при этом задействуется, я не изучал.
PictureView 3 — просмотр изображений различных форматов
Posted: Wed 29 Aug, 2018 16:46
by SEt
Новая версия:
Различные улучшения обработки векторных форматов в GFL.
PictureView 3 — просмотр изображений различных форматов
Posted: Wed 29 Aug, 2018 18:41
by HaRT
SEt wrote: ↑Wed 29 Aug, 2018 16:46
Различные улучшения обработки векторных форматов в GFL.
Спасибо за отображение DPI для *.ai/*.ps, а также за доработку документации.
Имею такое отображение: книга.ps 1274 x 1649 x 8b 100% 6/6 [2/1096] - PictureView by GFL : ps@150dpi { Image generated by GPL Ghostscript (device=pnmraw)} 73200+5+22753ms <AutoY>
Правильно ли я понимаю, что числа в 73200+5+22753 идут в таком порядке?:
SEt wrote: ↑Sat 07 Sep, 2013 21:52
три числа: время декодирования, время отрисовки, время распознавания формата и различной начальной инициализации
(Кстати, хорошо бы это включить в документацию, чтобы не выискивать.)
PictureView 3 — просмотр изображений различных форматов
Posted: Wed 29 Aug, 2018 19:38
by HaRT
SEt wrote: ↑Fri 24 Aug, 2018 19:58
А разве на GFL при открытии по имени можно как-то повлиять? Esc хоть и работает более агрессивно, но всё же цивилизованно.
Я поглядел попристальнее и обнаружил, что можно: в ф-и gflLoadBitmap/gflLoadBitmapFromMemory передаётся заполненная структура GFL_LOAD_PARAMS, в которой есть поле Callbacks, а в указуемой им структуре GFL_LOAD_CALLBACKS есть WantCancel (и Progress), а также ещё ряд указателей на ф-ии, которые, возможно, позволили бы снять часть нареканий по расходу памяти и/или по времени декодирования.
PictureView 3 — просмотр изображений различных форматов
Posted: Thu 30 Aug, 2018 05:20
by SEt
HaRT wrote: ↑Wed 29 Aug, 2018 18:41
Имею такое отображение: книга.ps 1274 x 1649 x 8b 100% 6/6 [2/1096] - PictureView by GFL : ps@150dpi { Image generated by GPL Ghostscript (device=pnmraw)} 73200+5+22753ms <AutoY>
Правильно ли я понимаю, что числа в 73200+5+22753 идут в таком порядке?:
SEt wrote: ↑Sat 07 Sep, 2013 21:52
три числа: время декодирования, время отрисовки, время распознавания формата и различной начальной инициализации
Да, так и есть. Очень милый файл.
HaRT wrote: ↑Wed 29 Aug, 2018 19:38
Я поглядел попристальнее и обнаружил, что можно: в ф-и gflLoadBitmap/gflLoadBitmapFromMemory передаётся заполненная структура GFL_LOAD_PARAMS, в которой есть поле Callbacks, а в указуемой им структуре GFL_LOAD_CALLBACKS есть WantCancel (и Progress), а также ещё ряд указателей на ф-ии, которые, возможно, позволили бы снять часть нареканий по расходу памяти и/или по времени декодирования.
Вот только когда всё тормозит на несколько секунд в данном случае – они не вызываются.
С памятью в последней версии должно быть всё хорошо.
PictureView 3 — просмотр изображений различных форматов
Posted: Thu 30 Aug, 2018 17:55
by HaRT
SEt wrote: ↑Thu 30 Aug, 2018 05:20Очень милый файл.
Ага, при этом сам Ghostscript декодирует его моментально (на тех же 300dpi), а вот XnView тормозит так же, как libGFL (что и не странно).
Конечно, интересно бы понять почему оно так дико тормозит…
PictureView 3 — просмотр изображений различных форматов
Posted: Thu 30 Aug, 2018 20:51
by HaRT
SEt wrote: ↑Thu 30 Aug, 2018 05:20Очень милый файл.
У меня несколько лучше: clm.ps 1274 x 1649 x 24b 68% 63/1394 [2/1096] - PictureView by GFL : ps@150dpi { Image generated by AFPL Ghostscript (device=pnmraw) } 12668+15+4665ms <AutoY>
SEt wrote: ↑Thu 30 Aug, 2018 05:20
когда всё тормозит на несколько секунд в данном случае – они не вызываются
Даже в течение тех 73 секунд?
Именно. Только до них и после. ^_^
Мне кажется, что хватит с GFL мучится. Кому нужна нормальная работа с такими форматами – быстрее, наверное, самому написать pvd-декодер (хоть через тот же Ghostscript), чем по столько ждать.
Можно, кстати, написать "тупой" pvd: он будет распознавать формат по сигнатуре, запускать по файлу внешний конвертер куда-нибудь в Temp и отдавать результирующий bmp/ppm.