Толик Панков
hex_laden
............ .................. ................

November 2020
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Толик Панков [userpic]
Отображение картинок в консоли Linux

Задумался тут, можно ли показать изображение в консоли Linux без использования X-Server'а. Ведь в современных Линуксах консоль, по большей части, только маскируются под текстовую, а на самом деле, с определенного этапа загрузки ОС, она вполне себе графическая, и фреймбуфер у них есть, и все прочее для отображения картинки. Шрифты же она отображает, причем не как в DOS, где в консоли никакого графического режима по умолчанию нет, и единственный шрифт 80x25 для VGA-режима и 40x25 для EGA (о-о-о-чень старые мониторы и видеочипы), ЕМНИС.

В Linux наоборот, надо еще пошаманить, чтобы сэмулировать режим VGA в "голой" консоли без иксов. Если не шаманить, то наоборот, может получиться как-то так:


Мелко, противно, нихрена не видно


Справедливости ради, в DOS есть и графические режимы, и даже софт для отображения картинок, но, фактически отображение будет не совсем "в консоли", программа должна будет переключить видеоадаптер в графический режим, и там уже сама как-то справляться с изображениями.

Вернемся к Linux. Итак, консоль вполне себе графическая, так есть ли софт? Как выяснилось, есть.

Называется программа FIM. Программа небольшая, поддерживает основные форматы (BMP, GIF, JPEG, png, tiff) и некоторые другие (PPhotoCD, ppm, XWD), а для остальных она пытается использовать ImageMagick. Программа основана на Fbi (framebuffer imageviewer - это нечто вроде печально известного Vim, только для работы с изображениями в консоли).

В зависимости от того, где она была запущена, программа использует разные механизмы отображения графики:
- если она выполняется в эмуляторе терминала под иксами, то использует библиотеку SDL или imlib2. Впрочем, в иксах, лично у меня, fim смухлевал. В том же самом терминале рисовать не стал, а создал отдельное окно.
- если запущена в "голой" консоли без иксов, использует консольный фреймбуфер
- и, что довольно забавно, если попытаться запустить ее на терминале, который графику не поддерживает (например, через PuTTY), то программа преобразует изображение в ASCII-арт, ну тут уж, что называется, как получится.

Установка


Для Debian/Ubuntu и подобных им дистрибутивов есть готовый пакет, для Slackware пришлось собирать из исходников, впрочем, у меня собралось с первого раза.

Запуск


fim <имя файла 1> [имя файла 2] [имя файла 3...] - для просмотра одного или нескольких файлов.

fim -R <каталог>, например, fim -R ~/Pictures/ - для просмотра изображений в каталоге.

Основные клавиши


n
- следующий файл
p - предыдущий
+ - увеличить
- - уменьшить
r - поворот
m - отзеркалить
f - отзеркалить и перевернуть вверх ногами
q, ESC - выход

На самом деле у утилиты довольно много возможностей, есть командный режим, как у Vim, в котором изображение можно редактировать, подробное описание всех возможностей - в мануале на официальном сайте.

Скриншоты


Котик в "голой" консоли


А вот в иксах он смухлевал, хотя котика нарисовал


Псевдографический котик в текстовом терминале. Довольно ничего получилось.


Ссылки


Официальный сайт
Исходники Копия
Мой пакет для Slackware

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/08/21/otobrazhenie-kartinok-v-konsoli-linux/

Comments

Кот охуенен чуть более чем полностью.

Факт!

ЗЫ. Он привлекает тебя... изучать Linux XD

Способностей нет. Хотя с точки зрения юзера нравится. Апдейтами мозг не ебет, а для игр Wine есть.

Как говорил МС Горбачев, главное нАчать. Программирование (и Линукс), это прикольно, как макраме или кроссворды. И плюс у тебя же есть муж-программер, поможет же :)

Вот с макраме все гораздо лучше, его (и некоторые другие виды рукоделия) я умею. Я безнадежный гуманитарий.

Опять же старовата я что-либо изучать. Мне в декабре 45 будет.

Это еще не возраст, особенно для девушек. Самое время изучать и меняться! Мальчикам да, и на 10 лет старше уже сложнее. Хотя есть исключения, типа полковника Сандерса (создал KFC) или Митио Каку (основные труды серьезно так после 45). Или Вербицкого.