mirror of
https://github.com/waveplate/img2irc.git
synced 2025-01-03 02:46:37 +00:00
apply luma-only effects
This commit is contained in:
parent
bb0ba0e990
commit
7cadbf8aad
39
src/main.rs
39
src/main.rs
@ -5,36 +5,37 @@ mod effects;
|
|||||||
|
|
||||||
use reqwest;
|
use reqwest;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use photon_rs::PhotonImage;
|
use photon_rs::PhotonImage;
|
||||||
use std::{error::Error, io::Cursor, process::exit};
|
use std::{error::Error, io::Cursor, process::exit};
|
||||||
|
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
let args = args::parse_args();
|
let args = args::parse_args();
|
||||||
|
|
||||||
match load_image_from_url_or_path(args.image.as_str()).await {
|
match load_image_from_url_or_path(args.image.as_str()).await {
|
||||||
Ok(mut image) => {
|
Ok(image) => {
|
||||||
image = effects::apply_effects(
|
let image_luma = effects::apply_luma_effects(&args, image.clone());
|
||||||
&args,
|
let image_chroma = effects::apply_effects(&args, image.clone());
|
||||||
image,
|
|
||||||
);
|
|
||||||
|
|
||||||
let canvas = draw::AnsiImage::new(image);
|
let canvas_luma = draw::AnsiImage::new(image_luma.clone());
|
||||||
|
let canvas_chroma = draw::AnsiImage::new(image_chroma.clone());
|
||||||
|
|
||||||
match (args.irc, args.ansi, args.ansi24, args.qb) {
|
match (args.irc, args.ansi, args.ansi24, args.qb, args.braille) {
|
||||||
(true, _, _, true) => println!("{}", draw::irc_draw_qb(canvas, &args).as_str()),
|
(true, _, _, true, false) => println!("{}", draw::irc_draw_qb(&canvas_chroma, &args)),
|
||||||
(true, _, _, false) => println!("{}", draw::irc_draw(canvas, &args).as_str()),
|
(true, _, _, false, false) => println!("{}", draw::irc_draw(&canvas_chroma, &args)),
|
||||||
(_, true, _, true) => println!("{}", draw::ansi_draw_8bit_qb(canvas, &args).as_str()),
|
(true, _, _, _, true) => println!("{}", draw::irc_draw_braille(&canvas_luma, &canvas_chroma, &args)),
|
||||||
(_, true, _, false) => println!("{}", draw::ansi_draw_8bit(canvas, &args).as_str()),
|
(_, true, _, true, false) => println!("{}", draw::ansi_draw_8bit_qb(&canvas_chroma, &args)),
|
||||||
(_, _, true, true) => println!("{}", draw::ansi_draw_24bit_qb(canvas).as_str()),
|
(_, true, _, false, false) => println!("{}", draw::ansi_draw_8bit(&canvas_chroma, &args)),
|
||||||
(_, _, true, false) => println!("{}", draw::ansi_draw_24bit(canvas).as_str()),
|
(_, true, _, _, true) => println!("{}", draw::ansi_draw_braille_8bit(&canvas_luma, &canvas_chroma, &args)),
|
||||||
(_, _, _, true) => println!("{}", draw::irc_draw_qb(canvas, &args).as_str()),
|
(_, _, true, true, false) => println!("{}", draw::ansi_draw_24bit_qb(&canvas_chroma)),
|
||||||
_ => println!("{}", draw::irc_draw(canvas, &args).as_str()),
|
(_, _, true, false, false) => println!("{}", draw::ansi_draw_24bit(&canvas_chroma)),
|
||||||
|
(_, _, true, _, true) => println!("{}", draw::ansi_draw_braille_24bit(&canvas_luma, &canvas_chroma, &args)),
|
||||||
|
(_, _, _, true, false) => println!("{}", draw::irc_draw_qb(&canvas_chroma, &args)),
|
||||||
|
(_, _, _, _, true) => println!("{}", draw::irc_draw_braille(&canvas_luma, &canvas_chroma, &args)),
|
||||||
|
_ => println!("{}", draw::irc_draw(&canvas_chroma, &args)),
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
eprintln!("Error: {}", e);
|
eprintln!("Error: {}", e);
|
||||||
exit(1);
|
exit(1);
|
||||||
@ -47,7 +48,6 @@ async fn load_image_from_url_or_path(image: &str) -> Result<PhotonImage, Box<dyn
|
|||||||
Ok(url) => {
|
Ok(url) => {
|
||||||
let response = reqwest::get(url).await?;
|
let response = reqwest::get(url).await?;
|
||||||
let bytes = response.bytes().await?;
|
let bytes = response.bytes().await?;
|
||||||
|
|
||||||
let image_data = Cursor::new(bytes);
|
let image_data = Cursor::new(bytes);
|
||||||
match photon_rs::native::open_image_from_bytes(image_data.into_inner().as_ref()) {
|
match photon_rs::native::open_image_from_bytes(image_data.into_inner().as_ref()) {
|
||||||
Ok(image) => Ok(image),
|
Ok(image) => Ok(image),
|
||||||
@ -62,4 +62,3 @@ async fn load_image_from_url_or_path(image: &str) -> Result<PhotonImage, Box<dyn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user