Colors in ansikit

This is a very basic tutorial for color management using ansikit. It doesn't cover what is already covered in the Basics tutorial.

Color objects

You can create tables of type Color (using typical/typekit) that can be transformed and concatenated.

Properties

You can index r, g and b values in the table (0-255), as well as a bg boolean value, which is true if the color is a background color.

Metamethofs

__type

It has a __type metamethod, set to Color.

__tostring

If __tostring is used, it is converted into a true color escape sequence (using Bit24).

__concat

It allows the color to be concatenated to strings or to other Colors.

Functions

You can switch the bg flag in the table by using the functions background and foreground, which do exactly what you think. They return the object as well.

## Palettes

ansikit includes Palettes both as color collections and as a type that you can create.

color4

This is a named collection of all Bit4 colors. See the documentation for reference on how to access it.

color8

This is a named collection of all Bit8 colors. See the documentation for reference on how to access it.

Palette

This lets you create your own palette with a name, and optionally a list of Colors.

Managing the palette

You can add colors to it with the function addColor or remove from it with removeColor. You can also get its name with the function nameFor.

Metamethods

__type

__type is set to Palette.

__index

Allows for custom indexing. Will generally allow you to get a color by its name, but you can also index __name to get the name of the palette or __colors to get the internal list of colorss for the palette.

Example

mypal = Palette "mypal"
addColor(mypal) ("white", Color(255, 255, 255))
mypal.white -- Color(255, 255, 255)
mypal = Palette "mypal"
(addColor mypal) "white", Color 255, 255, 255
mypal.white -- Color 255, 255, 255

Paint

Purely for compatibility with CraftOS, ansikit.paint will let you load and draw NFP formatted images.

NFP format

The NFP formats simply consists of text where a whitespace means "empty", a newline means "next row", and a hex character is a color.

In this library, when an image is loaded, each item in a row is a background Color object, which, at drawing time, is prepended to a single space ().

colors

colors is a Palette named CraftOS with the default CraftOS colors.

Color Paint Display
colors.white 0 #F0F0F0
colors.orange 1 #F2B233
colors.magenta 2 #E57FD8
colors.lightBlue 3 #99B2F2
colors.yellow 4 #DEDE6C
colors.lime 5 #7FCC19
colors.pink 6 #F2B2CC
colors.gray 7 #4C4C4C
colors.lightGray 8 #999999
colors.cyan 9 #4C99B2
colors.purple a #B266E5
colors.blue b #3366CC
colors.brown c #7F664C
colors.green d #57A64E
colors.red e #CC4C4C
colors.black f #191919

Loading and drawing

You can load an image from a text file using loadImage or from a Lua string using loadNFP. loadImage uses loadNFP underneath.

After you have your table, you can blit it into the terminal using the function drawImage.