Images
Enable the feature
artbox = { version = "0.2", features = ["images"] }Auto output (terminal or ASCII)
use artbox::{Artbox, RenderTarget};use artbox::images::ImageOutput;
let art = Artbox::default().with_image_output(ImageOutput::Auto);let rendered = art.render_image_path("logo.svg", RenderTarget::new(40, 12))?;
// Terminal output if supported, else ASCIIprint!("{}", rendered.to_ansi_string());Rendered::to_ansi_string() returns terminal image escape sequences when inline image
protocols are available, and ANSI-colored ASCII output otherwise.
Force ASCII output
use artbox::{Artbox, RenderTarget};use artbox::images::{ImageOutput, ascii::{AsciiOptions, AsciiMode}};
let ascii = AsciiOptions::default() .with_width(80) .with_mode(AsciiMode::Shade) .with_color(true);
let art = Artbox::default() .with_image_output(ImageOutput::Ascii) .with_image_ascii_options(ascii);
let rendered = art.render_image_path("photo.png", RenderTarget::new(80, 30))?;print!("{}", rendered.to_ansi_string());Force terminal image output
use artbox::{Artbox, RenderTarget};use artbox::images::{ImageOutput, TerminalImageConfig, TerminalImageMode};
let config = TerminalImageConfig::default() .with_mode(TerminalImageMode::Kitty) .with_move_cursor(false);
let art = Artbox::default() .with_image_output(ImageOutput::Terminal) .with_image_terminal_config(config);
let rendered = art.render_image_path("logo.png", RenderTarget::new(40, 12))?;print!("{}", rendered.to_ansi_string());