use std::{ io, num::{NonZeroU128, NonZeroU32}, process, }; use kitty_image::{ Action, ActionPut, ActionTransmission, Command, Format, Medium, Quietness, WrappedCommand, ID, UNICODE_DIACRITICS, }; fn main() -> io::Result<()> { put(); display(); Ok(()) } fn put() { let action = Action::TransmitAndDisplay( ActionTransmission { format: Format::Png, medium: Medium::File, width: 387, height: 480, ..Default::default() }, ActionPut { unicode_placeholder: true, columns: 28, rows: 18, ..Default::default() }, ); let mut command = Command::with_payload_from_path( action, "/home/johnh/projects/programs/03_lib/kitty_image/examples/the_scream.png".as_ref(), ); command.quietness = Quietness::SuppressAll; command.id = Some(ID(NonZeroU32::new(1).unwrap())); let mut command = WrappedCommand::new(command); command.double_escape = true; println!("\x1bPtmux;{command}\x1b\\"); } fn display() { print!("\x1b[38;5;1m"); for y in UNICODE_DIACRITICS.iter().take(18) { for x in UNICODE_DIACRITICS.iter().take(28) { print!("\u{10EEEE}{}{}", y, x); } println!(); } println!("\x1b[39m"); }