diff --git a/src/lib.rs b/src/lib.rs index 07dbc60..deb99f9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,13 +1,13 @@ extern crate ansi_term; extern crate image; -use std::io::{Write, self}; +use std::io::Write; use ansi_term::Colour::Fixed; use ansi_term::ANSIStrings; use image::{imageops, FilterType, Pixel}; -pub fn print_image(img: image::DynamicImage, true_colour: bool, width: u32, height: u32) { +pub fn print_image(img: image::DynamicImage, true_colour: bool, width: u32, height: u32, w: &mut W) { let img = imageops::resize(&img, width, height, FilterType::Nearest); if !true_colour { @@ -27,7 +27,7 @@ pub fn print_image(img: image::DynamicImage, true_colour: bool, width: u32, heig Fixed(bottom_colour).on(Fixed(top_colour)).paint("▄") }).collect(); - print!("{}\n", ANSIStrings(&row)); + write!(w, "{}\n", ANSIStrings(&row)).ok(); } } else { let mut row = Vec::new(); @@ -48,7 +48,7 @@ pub fn print_image(img: image::DynamicImage, true_colour: bool, width: u32, heig } write!(row, "\x1b[m\n").unwrap(); - io::stdout().write(&row).unwrap(); + w.write(&row).unwrap(); row.clear(); } } diff --git a/src/main.rs b/src/main.rs index b083bc9..f7661b8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ extern crate serde_derive; extern crate terminal_size; extern crate termpix; -use std::io::Write; +use std::io::{Write, stdout}; use docopt::Docopt; use image::GenericImage; @@ -54,7 +54,7 @@ fn main() { let true_colour = args.flag_true_colour || args.flag_true_color; let (width, height) = determine_size(args, orig_width, orig_height); - termpix::print_image(img, true_colour, width, height); + termpix::print_image(img, true_colour, width, height, &mut stdout()); }