Растровая графика в xterm?

Нет, не ASCII-графика, см. скриншот здесь:

http://en.wikipedia.org/wiki/W3m

image

Как это возможно?

Я проверил источник, и он только печатает последовательности символов. Тем не менее, я не могу найти ссылку на escape-последовательности графического рисунка или изображения в документации xterm или в другом месте.

w3m также кажется единственным программным обеспечением, которое делает это.

В эмуляции Tektronix есть векторная графика, но это делается в режиме VT.

Возможно, я искал неправильную вещь?

Любая идея?

Ответы

Ответ 1

Это чит.

Обратите внимание, что эта функция работает только в "поддерживаемых терминалах" - и это означает, что xterm и рендеринг непосредственно в окне xterm через xv.

Или нет! Просто просмотрите источники, файл, который нас интересует, здесь. Он все еще взломан - через X11 и GTK!

Ответ 2

Существует MLTerm, который поддерживает формат Sixel (а не команды ReGis). Он доступен как для Linux, так и для Windows.

В противном случае, согласно man xterm в Ubuntu 12.04, xterm поддерживает графику Tektronix, которая (справочная страница говорит) использует ReGIS команды или формат растрового изображения Sixel, в зависимости от параметров компиляции (я полагаю, это Sixel для XTerm в репозитории пакетов Ubuntu).

Одна вещь, которую нужно знать, это то, что ReGIS - это набор команд, а Sixel - формат растрового изображения.

В качестве побочного примечания существует пакет Python для использования эмуляторов терминалов Sixel: PySixel.

Я тоже интересуюсь этой темой и могу обновить этот ответ в будущем, используя другие соответствующие записи эмуляторов терминала.

Ответ 3

Более поздние модели терминалов Dec VT поддерживают ReGis и Sixel графических команд. Если эмуляция xterm достаточно хороша, возможно, как это было сделано?

Ответ 4

Xterm поддерживает протоколы Sixel и ReGIS, которые позволяют визуализировать графику непосредственно в терминале с использованием управляющих последовательностей. Однако Unicode вмешивается в 8-битные escape-последовательности, поэтому вам может потребоваться преобразовать их в 7-битные последовательности.

https://en.wikipedia.org/wiki/Sixel

https://en.wikipedia.org/wiki/ReGIS