Форум программистов, компьютерный форум, киберфорум
nekit270
Войти
Регистрация
Восстановить пароль
Добро пожаловать, здесь я программирую бессмысленно и беспощадно

Просмотрщик изображений в командной строке

Запись от nekit270 размещена 29.12.2023 в 12:22
Показов 3381 Комментарии 6

Нет, не изображений, составленных из символов, а самых обычных, в нормальном качестве.

Как? WinAPI может многое, и если вам кажется, что что-либо невозможно, скорее всего оно станет возможным, как только вы отбросите один или несколько слоев абстракций.
Зачем? Просто так. Возможно, кто-то найдет этому применение.

Поддерживаются форматы BMP, JPG, PNG, GIF и TIFF, поэтому просмотрщик без особых проблем справится с большинством изображений (если вы, конечно, не ярый фанат WEBP и не держите у себя только его).

Как это устроено:
  1. Вызовом GetConsoleWindow программа получает дескриптор консольного окна
  2. С помощью Bitmap.GetHbitmap программа получает дескриптор HBITMAP изображения
  3. С помощью функций CreatePatternBrush и FillRect происходит отрисовка иображения в окне

Синтаксис командной строки просмотрщика:
Code
1
2
3
4
5
6
7
Использование: civ <файл> [длина] [ширина] [-p]
 
Просмотр изображений в консоли.
 
        [длина]     Длина изображения. Если равна 0, использовать оригинальную длину.
        [ширина]    Ширина изображения. Если равна 0, использовать оригинальную ширину.
        [-p]        Ждать нажатия клавиши после завершения (чтобы изображение не затерлось приглашением консоли)
Исходный код и скомпилированный EXE выложены на GitHub. Код распространяется по лицензии MIT, что позволяет использовать его даже в коммерческих продуктах.

Пример работы просмотрщика:
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 405
Размер:	566.4 Кб
ID:	8438
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 6
Комментарии
  1. Старый комментарий
    Аватар для Fedor92
    Зачем? Просто так. Возможно, кто-то найдет этому применение.
    Годная вещица. С терминала IDE её можно заюзать для просмотра удалённых файлов?
    Запись от Fedor92 размещена 29.12.2023 в 12:56 Fedor92 вне форума
  2. Старый комментарий
    В вашу копилку "Зачем? Просто так. Возможно, кто-то найдет этому применение."

    я когда-то (лет 15-20 назад) использовал shimgvw.dll для печати изображений на принтере и, кажется, там была возможность визуализации изображений (не гарантирую, давно это было)
    Запись от sqltd1 размещена 29.12.2023 в 13:46 sqltd1 вне форума
  3. Старый комментарий
    Аватар для nekit270
    Цитата Сообщение от Fedor92
    Годная вещица. С терминала IDE её можно заюзать для просмотра удалённых файлов?
    Думаю, зависит от IDE, я проверял работоспособность только в стандартной консоли, как поведет себя GetConsoleWindow в других местах - неизвестно
    Запись от nekit270 размещена 29.12.2023 в 22:56 nekit270 вне форума
  4. Старый комментарий
    Вот вы вывели картинку в окне консоли, но в чем смыл? Зачем она там? Чтобы была?
    Что будет если свернуть окно консоли, или ввести в ней текст? Картинка затрется?
    Запись от locm размещена 02.01.2024 в 00:02 locm вне форума
  5. Старый комментарий
    Аватар для nekit270
    Цитата Сообщение от locm
    Вот вы вывели картинку в окне консоли, но в чем смыл? Зачем она там? Чтобы была?
    Что будет если свернуть окно консоли, или ввести в ней текст? Картинка затрется?
    Да, чтобы была. Об этом даже написано: "Зачем? Просто так". Если ввести текст в консоль, картинка затрется, для предотвращения этого существует опция -p.
    Запись от nekit270 размещена 05.01.2024 в 05:10 nekit270 вне форума
  6. Старый комментарий
    Аватар для AlexProgramm
    Вот это круто вообще
    Запись от AlexProgramm размещена 07.01.2024 в 01:19 AlexProgramm вне форума
 
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru