Комментарии 51
Однажды я увидел очень старую распечатку на бумажной ленте. Даже не матричный принтер, а электрическая печатная машинка. Погуглил и неожиданно нашел с описанием.
«ASCII JESUS SUPERSTAR (original print. Center for Computer Sciences, Dept. of Mathematics, Tartu University, pre-PC computer/ascii art wave in Soviet Union, late 1970s. 42x82 cm, framed)»
Кто-нибудь знает историю происхождения этой картинки?
очень старую распечатку на бумажной ленте
Тогда уж вспомним про «кошечку».
В то время был расцвет ASCII-art'а в СССР, разумеется, у тех, у кого был доступ к технике. Были и умельцы, которые с произвольной картинки делали ее ASCII-версию, потом эти «картинки» на перфолентах бродили по разным вычислительным центрам. В одном из фильмов так даже «фотографию» главной героини распечатывали.
А еще конец семидесятых — период фанатства этой рок-оперой, особенно после ее релкамы в передаче Севы Новгородцева. Легально ее поставят в 1989 году в Рыбинске, а до этого — десять лет подполья. Причем некоторые умудрялись устраивать и полу-легальные коллективные прослушивания с винила или катушек в актовых залах. Видимо, сначала «лекция» о буржуазной музыке, которая использует религию для развращения умов молодежи, а потом — «демонстрация» того, чего советский человек должен был избегать. Примерно так же слушали «Emerson, Lake and Palmer», только под соусом «русская классическая музыка в современной обработке». Видимо, под такое полу-легальное коллективное прослушивание и сделали этот постер…
en.wikipedia.org/wiki/VT320
en.wikipedia.org/wiki/Sixel
В linux так то вообще есть виртуальные фреймбуфферы и вы можете на сервере без видеокарты запускать GUI приложения.
проверил в iterm2 – работает без дополнительных настроек. правда если переключиться в mc по ⌃O, то при переключении обратно картинка заменяется на однотонный прямоугольник :) ещё картинку из iterm можно drag-and-drop-нуть в файндер – он сохраняет текстовый файл с escape-последовательностями, но что-то пропускает – повторно вывести её в терминал через cat уже не выходит…
У них корни идут в древние 70-80-ые годы, когда на них ещё динозавры сочиняли свои мемуары для потомков.
Это, походу, какая-то очень специфическая фича от старых терминалов типа VT3xx. Удивлён что её умеет xterm. Хотелось-бы получить файл который-бы можно было сделать cat и получить в консоли картинку =) Чтобы проверить какой эмулятор терминала поддерживает графику а какой нет.
Если я правильно угадал, то вот в этой команде
convert <(curl -s https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png) sixel:-
конечный минус является указателем на stdout, и его можно заменить на имя файла.
By default, the image format of `file' is determined by its magic number. To specify a particular image format, precede the filename with
an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-'
for standard input or output.
Т.е. можно sixel:filename можно filename.sixel.
Если я правильно угадал, то вот в этой команде
А я в этой команде не очень понял конструкцию со знаком <
Обычно этот знак говорит о том, что надо прочитать файл, который после этого знака указан. А тут указана в скобках команда, которая этот файл читает из интернетов (причём, знак < указан не после всех аргументов программы convert, а прямо посреди списка аргументов). Но это же всё-равно, что сделать так:
curl -s $url | convert sixel:-
Попробовал сделать так — и ничего не получилось.
И ещё:
Пример показан для xterm.
А в konsole такое возможно?
И не просто в konsole. Вот сижу я в konsole в скринах с TERM соответствено = screen.
Внутри скрина можно ли как-то так графику отобразить?
Конструкция <(…)
запускает команду в скобках и передаёт её вывод внешней команде как файл (а не как stdin).
Когда вы меняете эту конструкцию на пайп — у вас "пропадает" один из параметров, отсюда и ошибка. Конкретно в случае convert можно попытаться вот так сделать:
curl -s $url | convert - sixel:-
Здесь первый минус означает, что читать надо с stdin.
Конструкция <(…) запускает команду в скобках
и передаёт её вывод внешней команде как файл
Т.е. получается наверно так — stdout команды, которая указана в скобках подставляется в командную строку вместо всей конструкции <(...)?
Ну типа как вместо $url вставляется значени переменной url, так же и вместо <(...) подставляется stdout выполняемой внутри скобок команды поди?
Ну в общем надо будет это попроверять немного.
Видимо, нужно что-то настроить или доустановить.
Upd. Разобрался. Вот здесь есть проект, посвящённый выводу видео FFmpeg напрямую в терминал через sixel, и там подробно рассказывается, что нужно сделать. Требуется поправить .Xresources и, если всё равно не поможет, пересобрать xterm с поддержкой sixel (опция --enable-sixel-graphics в ./configure).
я воспользовался онлайн конвертером, скачал, вызвал cat на получившемся файле
https://s121.convertio.me/p/DdnUpeF2kNmTYkk8hOZfSA/7139a098c74878e07ec4f9107a48913f/Lenna__test_image_.sixel
Сходу в putty ничего не вышло
Сделайте лучше так, чтобы GUI-библиотеки могли прозрачно работать в текстовом 80x25.
Что значит теперь? Автор же пишет, что эта фича появилась в VT340, который поступил в продажу где-то между 1987 и 1990 (не смог найти в интернете более точную информацию).
На "Апогее" можно похожим способом через ВГ75 графику выводить.
Графику (даже с намёками на анимацию) в текстовые терминалы отображать научились.
Осталось научиться выводить в терминалы звук и всё! Можно ваять видопроигрыватели!
Уже потираю руки от того, что от всего этого можно будет когда-нибудь для текстовых терминалов наваять:
Браузеры "графические", редакторы графические, ютубы там всякие, прямые трансляции и всё такое.
Иксы для текстового режима случае ещё никто не наваял ли?
Графика в терминале