#ansi #terminal #pixel #image

ansipix

A rust library for converting images to ANSI strings to print in a terminal

4 releases (1 stable)

Uses new Rust 2021

1.0.0 Jun 10, 2022
0.1.2 Dec 10, 2021
0.1.1 Dec 10, 2021
0.1.0 Dec 10, 2021

#81 in Graphics APIs

Download history 19/week @ 2022-03-16 10/week @ 2022-03-23 7/week @ 2022-03-30 8/week @ 2022-04-06 6/week @ 2022-04-13 6/week @ 2022-04-20 16/week @ 2022-04-27 30/week @ 2022-05-04 49/week @ 2022-05-11 19/week @ 2022-05-18 20/week @ 2022-05-25 32/week @ 2022-06-01 44/week @ 2022-06-08 23/week @ 2022-06-15 63/week @ 2022-06-22 8/week @ 2022-06-29

139 downloads per month
Used in 2 crates

GPL-3.0-only

12KB
146 lines

ansipix

A rust library for converting images to ANSI strings to print in a terminal

Usage

Add as dependency

Add the following to your Cargo.toml

ansipix = "1.0.0"

Get an ANSI string

use std::path::PathBuf;

let img = ansipix::of_image_file(PathBuf::from("example.png"), (50, 50), 100, false);

match img {
    Ok(img) => println!("{}", img),
    Err(e) => eprintln!("{}", e),
}

Refer to the docs for more information.

Specify a different filter type

ansipix uses the image crate for opening and resizing the image. The of_image_file function uses FilterType::Nearest for resizing. You can specify a different one with the of_image_file_with_filter function.

use std::path::PathBuf;
use ansipix::FilterType;

let img = ansipix::of_image_file_with_filter(PathBuf::from("example.png"), (32, 32), 255, false, FilterType::Triangle);
match img {
    Ok(img) => println!("{}", img),
    Err(e) => eprintln!("{}", e),
}

Dependencies

~5.5MB
~66K SLoC