binocular/preview/image/
mod.rs1mod detect;
2mod metadata;
3pub(crate) mod ui;
4
5use image::ImageReader;
6use ratatui::text::Text;
7use ratatui_image::picker::Picker;
8use ratatui_image::protocol::StatefulProtocol;
9use std::path::Path;
10
11pub fn is_image_extension(path: &Path) -> bool {
12 detect::is_image_extension(path)
13}
14
15pub fn load_image(path: &Path, picker: &Picker) -> Option<(StatefulProtocol, Text<'static>)> {
16 let reader = ImageReader::open(path).ok()?;
17 let reader = reader.with_guessed_format().ok()?;
18 let format = reader.format();
19 let dyn_img = reader.decode().ok()?;
20 let metadata = metadata::generate_metadata(path, &dyn_img, format);
21 let protocol = picker.new_resize_protocol(dyn_img);
22 Some((protocol, metadata))
23}