2016-04-09 00:37:23 +02:00
|
|
|
|
# TerminalImageViewer
|
2016-04-09 00:59:01 +02:00
|
|
|
|
|
|
|
|
|
Small Java program to display images in a (modern) terminal using RGB ANSI codes and unicode block graphic characters
|
|
|
|
|
|
2016-04-09 01:21:06 +02:00
|
|
|
|
Algorithm (for each 4x8 pixel cell mapped to a unicode block graphics character):
|
|
|
|
|
|
2016-06-22 23:55:14 +02:00
|
|
|
|
1. Find the color channel (R, G or B) that has the biggest range of values for the current cell
|
|
|
|
|
2. Split this range in the middle
|
2016-04-09 01:21:06 +02:00
|
|
|
|
3. Average the colors above and below and create a corresponding bitmap for the cell
|
2016-06-22 23:55:14 +02:00
|
|
|
|
3. Compare the bitmap to the assumed bitmaps for various unicode block graphics characters
|
2016-04-09 01:21:06 +02:00
|
|
|
|
|
2016-04-09 00:59:01 +02:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
javac TerminalImageViewer.java
|
|
|
|
|
|
|
|
|
|
java TerminalImageViewer [-w <width-in-characters>] <image-filename-or-url>
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
2016-06-22 21:20:47 +02:00
|
|
|
|
If multiple images match the filename spec, thumbnails are shown.
|
|
|
|
|
|
2016-04-09 00:59:01 +02:00
|
|
|
|
![Examples](http://i.imgur.com/8UyGjg8.png)
|
2016-06-22 21:20:47 +02:00
|
|
|
|
|