elfmz / far2l

Linux port of FAR v2
GNU General Public License v2.0
1.8k stars 173 forks source link

ImageViewer plug-in needed #356

Open randolf opened 6 years ago

randolf commented 6 years ago

Has anyone been doing any work on porting the ImageViewer plug-in to Linux? This is such a useful plug-in that made it so easy to just press F3 to view an image, such as a scan of a cheque/payment/receipt, then switch back to a text file and enter information there. Or, use F3 to quickly check that I'm looking at the right image file before copying it or moving it to another directory.

Without this plug-in, I find that it's a lot more awkward and less efficient to work with images, particularly hundreds or thousands of images at a time.

Thanks.

lieff commented 6 years ago

I`m working on opengl gui version of far2l and have same thought, but currently no ETA. As temporary solution you can assign fast viewer to images (Commands->File associations). I recommend https://bitbucket.org/andreyu/simple-viewer-gl It supports ESC hotkey, so you may quickly do ENTER-ESC.

randolf commented 6 years ago

@lieff Thank you! I will look at that, most likely today. Having the image re-sized automatically to fit into the other panel is ideal, but this interim solution you suggest will definitely make it partly less awkward.

randolf commented 6 years ago

@lieff The plug-in you recommended works well. Although the + and - keys on the numeric keypad are ignored, I can at least use the ones on the top row of the main section of the keyboard.

I really like that I can view .psd files and many other formats, and that its performance is so fast. I look forward to the day that this plug-in is integrated into far2l as a native plug-in.

unxed commented 1 year ago

As almost all annoying problems in far2l are solved now, I guess it's time to think about viewing images in far2l directly. wx backend will for sure enable displaying arbitrary bitmap, for tty there is at least kitty's graphics protocol and some others like sixel.

I could start implementing such thing by myself, but not sure if I am experienced enough to make impementation on top of wx enough elegant. Probably we should extend console API to allow showing bitmaps on a top of console surface.

@elfmz maybe you can suggest something?

unxed commented 1 year ago

Так. Конкретизирую запрос. Я тут экспериментирую с расширением console api чтоб можно было картинку через него показывать. И у меня в одном месте падает всё, не могу понять почему. Как вытащить полезную инфу из crash.log? Я раньше особо отладкой кода на сях не занимался, не особо в курсе про то, как все эти адреса, которые там, на реальные вызовы функций мапить.

unxed commented 1 year ago

Ну, в принципе, простейший image viewer я сделал, вот тут лежит. Вызывается пока по Shift+F7 (т.к. единственная свободная комбинация).

https://github.com/unxed/far2l/tree/imgview

unxed commented 1 year ago

переписал прототип с X11 API на wxWidgets API, ушла зависимость от Xpm

unxed commented 1 year ago

добавил автоповорот по exif тэгам, ручной поворот по стрелкам вправо-влево, вверх-вниз подстраивает яркость, шифт-вверх-вниз — контраст.

unxed commented 1 year ago

Надо бы всё-таки с архитектурой определиться, как такое правильно делать.

Я это вижу так: GUI бэкенд должен экспортировать некий простейший API, позволяющий показать битмап на холсте и больше ничего. Плюс к этом — плагин, который читает и декодирует (чем угодно внешним, да хотя бы ffmpeg) картинку до простейшего битмапа, и этот битмап уходит в API (напрямую или через терминальные экстеншны). Если far2l «верхнего уровня» — тоже консольный, картинка не показывается (хотя в перспективе можно будет сделать на всяких sixel). Если графический — картинка показывается.

@elfmz что скажете? Правдоподобно?

atolismesh commented 1 year ago

As almost all annoying problems in far2l are solved now, I guess it's time to think about viewing images in far2l directly. wx backend will for sure enable displaying arbitrary bitmap, for tty there is at least kitty's graphics protocol and some others like sixel.

Я голосую за/поддерживаю вариант kitty's graphics protocol С ним chafa и другие распространенный инструменты показывают отличную картинку. И его еще несколько эмуляторов терминалов поддерживают.

unxed commented 1 year ago

Всё равно нужно будет добавить в отношения фара с бекендами какой-то API для перегонки битмапов. Сейчас такого нет, и даже если из встроенного терминала придёт что-то в формате графики kitty, фар просто не сможет это отобразить.

unxed commented 3 months ago

Possible way to implement int TTY: use "child x11/wayland window" method as done here: https://github.com/jstkdng/ueberzugpp

faerot commented 2 months ago

Я голосую за/поддерживаю вариант kitty's graphics protocol С ним chafa и другие распространенный инструменты показывают отличную картинку. И его еще несколько эмуляторов терминалов поддерживают.

I vote against it - I have tried it and it's very slow to show image in kitty.

faerot commented 2 months ago

Possible way to implement int TTY: use "child x11/wayland window" method as done here: https://github.com/jstkdng/ueberzugpp

This is definitely a good option - simple and fast