use super::generic_converter::render_ascii_generic;
use crate::{
conversion::converters::generic_converter::Imgii2dImage,
error::ImgiiError,
options::{ImgiiOptions, RasciiOptions},
};
use image::open;
use rascii_art_img::render_image_to;
pub(crate) fn parse_ascii_to_2d_png_vec(
input_file_name: &str,
imgii_options: &ImgiiOptions,
) -> Result<Imgii2dImage, ImgiiError> {
let ascii_text = read_png_as_ascii(input_file_name, imgii_options.rascii_options())?;
render_ascii_generic(imgii_options, ascii_text)
}
pub(crate) fn read_png_as_ascii(
input_file_name: &str,
rascii_options: &RasciiOptions,
) -> Result<String, ImgiiError> {
let mut ascii_text = String::new();
let loaded_img =
open(input_file_name).map_err(|err| -> ImgiiError { anyhow::Error::new(err).into() })?;
render_image_to(&loaded_img, &mut ascii_text, rascii_options)
.map_err(|err| -> ImgiiError { anyhow::Error::new(err).into() })?;
Ok(ascii_text)
}