artscii 0.3.0

A cli tool to generate ascii art.
Documentation
use std::path::PathBuf;

use image::{GenericImageView, ImageReader};

use crate::core::frame::Frame;

#[derive(Debug)]
pub struct ReaderImage {
    path: PathBuf,
}

impl ReaderImage {
    pub fn new(path: PathBuf) -> Self {
        Self { path }
    }

    pub fn read(&self) -> anyhow::Result<Frame> {
        let img = ImageReader::open(&self.path)?.decode()?;
        let (width, height) = img.dimensions();

        let gray = img.to_luma8();
        let pixels = gray.into_raw();

        let frame = Frame::new(pixels, width, height);

        Ok(frame)
    }
}