This crate provides an easy way to turn a normal image into an ASCII picture. Supported image formats are the ones that the image
crate supports; see here for the list.
By default, images are resized to 250x250 pixels before turning them into ASCII. You can override this by passing a Dimension
struct with a width and height. If the image is smaller than the dimensions, it will not be resized.
- Open an image file and convert the contents into an ASCII string
fetch
- Enabling this feature allows the use of a function to download images from a URL.
Here is a simple example for turning an image into ASCII. To try out the provided example, use cargo run --example asciify /path/to/picture.png
use asciifyer::{convert_to_ascii, Dimension};
use std::env;
fn main() {
let path = env::args().nth(1).expect("Please enter a path to an image");
let dimensions = Dimension::new(50, 50);
let ascii = convert_to_ascii(&path, Some(dimensions));
println!("{}", ascii);
}
Example output using the provided dolphin image:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#@@@@0;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;/########@@;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;@############;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;0/#00#########/;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;///O0000#######0;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;////;0000000000##;;;;;;;;;
;;;;;;;;;;;;;;;/#;;;://///;000000000000/;;;;;;;;
;;;;;;;;;;;;;;;//0;;/////;;0000000000000;;;;;;;;
;;;;;;;;;;;;;;;/;0##////;;;;0000000000000@;;;;;;
;;;;;;;;;;;;;;;;;;;0////;;;;0000000/00####0;;;;;
;;;;;;;;;;;;;;:;;0/;///;;;;;00000///O///###;;;;;
;;;;;;;;;;;;;;;;#/////;;;;;;00000O/:;;;/0##;;;;;
;;;;;;;;;;;;;;;:////O/;;;;;;:000O/;;;;;;00#/;;;;
;;;;;;;;;;;;;;;///////;;;::;:00///;;;;;;O0.;;;;;
;;;;;;;;;;;;;;O/////;:;;@ :;0O///:;;;;/'O;;;;;;
;;;;;;;;;;;;;0/////;;;;;@@';;;O/O//::;,,;;;;;;;;
;;;;;;;;;;;;0/////;;;;;;O;;;;;OOO/;:,,:;;;;;;;;;
;;;;;;;;;;;/////;;;;;;.;;;;;;;0OO/,,';;;;;;;;;;;
;;;;;;;;;;;/////;;;;;;;;;;;;;;/',,,..//;;;;;;;;;
;;;;;;;;;;;////;;;;;;;/;;;;;;,,,,....:;;;;;;;;;;
;;;;;;;;;;///;;;;;;;;//;;;;:,,..,....;;;;;;;;;;;
;;;;;;;;;;;//;;;;;;;//,;;;,....:,..;;;;;;;;;;;;;
;;;;;;;;;;;//;;;;;;OO,.;......;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;/;;;;;0OO..:......;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;/;;;;000.:;......;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;:;;;00;::;......;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;:;;00.::;.....,;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;:;00 ;;;.....,;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;:00';;;.....;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;0,;;;....;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;::;;;....;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;/:;:;....;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;#///;;::...;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;#0,,:;;:...;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;:.,,,;;...;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;0;..,,;:.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;...,;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;/:.:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Copyright © 2020 Evan Maddock maddock.evan@vivaldi.net
ASCIIfyer is available under the terms of the Apache 2.0 license.