#[cfg(all(feature = "decoders", not(target_arch = "wasm32")))]
fn main() -> Result<(), Box<dyn std::error::Error>> {
let image_path = std::env::args()
.nth(1)
.expect("usage: preprocess_only <image>");
let img = lfm::decode_with_orientation(std::path::Path::new(&image_path))?;
let budget = lfm::ImageBudget::default();
let preproc = lfm::Preprocessor::new(budget);
let result = preproc.preprocess(&img)?;
println!("Image: {image_path}");
println!(
"Tiles: {}×{} ({})",
result.cols(),
result.rows(),
result.num_tiles()
);
println!("Tile size: {:?} px", result.main_tile_size());
println!(
"Thumbnail: {}",
result
.thumbnail_size()
.map_or_else(|| "none".into(), |s| format!("{s:?} px"))
);
println!("Image tokens: {}", result.num_image_tokens());
println!("pixel_values: {} f32 values", result.pixel_values().len());
Ok(())
}
#[cfg(not(all(feature = "decoders", not(target_arch = "wasm32"))))]
fn main() {
let _ = std::env::args().nth(1);
println!(
"preprocess_only: enable the `decoders` feature on a non-wasm target to run this example."
);
}