TerminalImageViewer/README.md

35 lines
1.2 KiB
Markdown
Raw Normal View History

2016-04-09 00:37:23 +02:00
# TerminalImageViewer
2016-04-09 00:59:01 +02:00
2017-07-09 22:03:16 +02:00
Small Java\* program to display images in a (modern) terminal using RGB ANSI codes and unicode block graphic characters.
2016-04-09 00:59:01 +02:00
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
2017-07-10 01:01:56 +02:00
\*) **C++ port** available at at https://github.com/stefanhaustein/tiv
2016-04-09 00:59:01 +02:00
2016-12-26 12:40:57 +01:00
## Usage
2016-04-09 00:59:01 +02:00
```
javac TerminalImageViewer.java
java TerminalImageViewer [-w <width-in-characters>] <image-filename-or-url>
```
2016-12-26 12:40:57 +01:00
## Common problems
2016-12-26 12:34:06 +01:00
- If you see strange horizontal lines, the characters don't fully fill the character cell. Remove additional line spacing in your terminal app
2016-12-26 12:40:57 +01:00
- Wrong colors? Try -256 to use a 256 color palette instead of 24 bit colors or -grayscale for grayscale.
2016-12-26 12:34:06 +01:00
2016-12-26 12:40:57 +01:00
## Examples
2016-12-26 12:34:06 +01:00
2016-04-09 00:59:01 +02:00
![Examples](http://i.imgur.com/8UyGjg8.png)
2016-06-22 21:20:47 +02:00
2016-06-23 14:10:47 +02:00
If multiple images match the filename spec, thumbnails are shown.
![Thumbnails](http://i.imgur.com/PTYgSqz.png)