Jul 20, 2023

Display images in terminals using RGB ANSI codes & unicode characters

Small C++ program to display images in a modern terminal using RGB ANSI codes and unicode block graphic characters.

There are various similar tools such as timg using the unicode half block character to display two 24bit pixels per character cell. This program enhances the resolution by mapping 4x8 pixel cells to different unicode characters, using the following algorithm

For each 4x8 pixel cell of the potentially downscaled image

  • Find the color channel R, G or B that has the biggest range of values for the current cell.
  • Split this range in the middle and create a corresponding bitmap for the cell.
  • Compare the bitmap to the assumed bitmaps for various unicode block graphics characters.
  • Re-calculate the foreground and background colors for the chosen character.

Checkout these related ports:
  • Zorro - Simple to-do list manager
  • Znotes - Simple notes managment application based on Qt
  • Zim - Desktop wiki editor
  • Zanshin - Daily organizer for KDE
  • Ydotool - Generic command-line automation tool (no X!)
  • Xwrits - Reminds you to take wrist breaks
  • Xrolo - Electronic Rolodex
  • Xpostitplus - PostIt (R) messages onto your X11 screen
  • Xpostit - PostIt (R) messages onto your X11 screen
  • Xpad3 - Virtual note-pad system for your X11 desktop
  • Xpad - Virtual note-pad system for your X11 desktop
  • Xneur - Auto keyboard switcher
  • Xmdiary - Personal and group calendar utility
  • Xfce4-xkb-plugin - Keyboard layout switching plugin for the Xfce panel
  • Xfce4-volumed-pulse - Volume management daemon for Xfce using PulseAudio