Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mikeralphson/ansir-js

Convert PNG/JPEG/GIFs to colourful terminal ANSI art. Based on
https://github.com/mikeralphson/ansir-js

ansi ansi-art bbs gif image jpeg jpg png

Last synced: 8 days ago
JSON representation

Convert PNG/JPEG/GIFs to colourful terminal ANSI art. Based on

Awesome Lists containing this project

README

        

# ANSIR

[![Build Status](https://travis-ci.org/themadcreator/ansir.svg?branch=master)](https://travis-ci.org/themadcreator/ansir)

Generate UTF-8 Art from PNG using ANSI color codes.

Similar to oldschool ANSI art, we use UTF-8 block characters and standard terminal color escape sequences.

Supports both the basic and extended ANSI color escape sequences. Note: Full 24-bit RGB escape sequences currently not supported.

A utility `conv.js` can be used to convert JPEGs etc to PNG format.

### Installation

npm install -g ansir

### Generate artwork

ansir sample/in.png

### Proportionally rescale the png file on the fly

ansir --scale 0.1 sample/in.png > sample/out.ans

### Sample

#### Input

![input](sample/in.png?raw=true)

#### Output (10% scale)

![output](sample/out.png?raw=true)

### Renderers

Ansir supports 3 modes of rendering, shown in the following table:

| Block | Shaded | Sub |
|-------|--------|-----|
|![block](sample/render-block.png?raw=true)|![shaded](sample/render-shaded.png?raw=true)|![sub](sample/render-sub.png?raw=true)|

### Usage

```
Usage: ansir

Generate UTF-8 Art from PNG using ANSI color codes.

Options:

-h, --help output usage information
-s, --scale Proportionally rescale image
-w, --width Target output width (in characters)
-h, --height Target output height (in lines)
--colors
The ANSI colorspace. Use "basic" for the most compatible 8-color
palette. The default is "extended" for the 256-color palette supported by
most major terminals that have any color at all.
--background
Applies only to "shaded" mode. Specifies whether the target terminal
will have a light or dark background. This determines color matching for
shaded UTF-8 block characters. Default is "dark", which means we interpret
a shaded block character as darker than a solid one.
--alpha-cutoff
The minimum alpha value of a pixel that should be converted to a ansi
color utf-8 block character. Valid values are 0.0-1.0. Default is
0.95.
--mode
The rendering mode. Default is "block". The options are:

"block" - Use the ANSI background escape sequence to create seamless blocks.

"shaded" - Use the ANSI foreground escape sequence on unicode block character.
░ LIGHT SHADE
▒ MEDIUM SHADE
▓ DARK SHADE
█ FULL BLOCK

"sub" - Use the ANSI foreground escape sequence on unicode quadrant block
characters. NOTE: These characters can cause slowness when used
with some common terminal fonts such as Consolas.
▘ QUADRANT UPPER LEFT
▝ QUADRANT UPPER RIGHT
▖ QUADRANT LOWER LEFT
▗ QUADRANT LOWER RIGHT
▚ QUADRANT UPPER LEFT AND LOWER RIGHT
▞ QUADRANT UPPER RIGHT AND LOWER LEFT
█ FULL BLOCK
```

### Resources

https://en.wikipedia.org/wiki/ANSI_art

http://ascii-table.com/ansi-escape-sequences.php