mirror of
https://github.com/eRgo35/ascii.git
synced 2026-02-04 04:46:09 +01:00
stdin read
This commit is contained in:
@@ -1,5 +1,28 @@
|
||||
use image::io::Reader;
|
||||
use image;
|
||||
use image::GenericImageView;
|
||||
use std::io::{self, BufReader, BufRead, Cursor};
|
||||
use atty::Stream;
|
||||
|
||||
pub fn load_image_from_stdin() -> Result<image::DynamicImage, image::ImageError> {
|
||||
let mut buffer: Vec<u8> = Vec::new();
|
||||
let mut raw_reader: Box<dyn BufRead> = if atty::is(Stream::Stdin) {
|
||||
eprintln!("Error: No image provided");
|
||||
std::process::exit(1);
|
||||
} else {
|
||||
Box::new(BufReader::new(io::stdin()))
|
||||
};
|
||||
|
||||
raw_reader.read_to_end(&mut buffer).unwrap();
|
||||
|
||||
let reader = Reader::new(Cursor::new(buffer))
|
||||
.with_guessed_format()
|
||||
.expect("Failed to read image format");
|
||||
|
||||
println!("Image loaded: stdin");
|
||||
|
||||
reader.decode()
|
||||
}
|
||||
|
||||
pub fn load_image(file_name: &str) -> image::DynamicImage {
|
||||
let img = image::open(file_name).expect("File not found!");
|
||||
|
||||
Reference in New Issue
Block a user