#ansi #terminal #pixel #image

ansipix

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

4 releases (1 stable)

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

#159 in Graphics APIs

Download history 11/week @ 2022-11-28 17/week @ 2022-12-05 22/week @ 2022-12-12 17/week @ 2022-12-19 14/week @ 2022-12-26 8/week @ 2023-01-02 17/week @ 2023-01-09 9/week @ 2023-01-16 29/week @ 2023-01-23 35/week @ 2023-01-30 15/week @ 2023-02-06 25/week @ 2023-02-13 18/week @ 2023-02-20 19/week @ 2023-02-27 21/week @ 2023-03-06 9/week @ 2023-03-13

78 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

~12MB
~133K SLoC