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

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

20 голосов
/ 22 января 2010

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

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

image

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

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

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

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

Может, я ищу не ту вещь?

Есть идеи?

Ответы [ 4 ]

14 голосов
/ 22 января 2010

Это чит.

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

Или нет! Только что проверил источники, интересующий нас файл здесь . Это все еще хак - через X11 и GTK!

9 голосов
/ 14 июля 2014

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

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

Следует знать, что ReGIS - это набор команд, а Sixel - растровый формат.

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

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

3 голосов
/ 22 января 2010

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

2 голосов
/ 22 апреля 2017

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

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

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

...