use zbar_pack::{Image, ImageScanner, SymbolType};
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("ZBar Pack Example");
let (major, minor) = zbar_pack::version();
println!("ZBar version: {}.{}", major, minor);
let mut scanner = ImageScanner::new()?;
println!("Scanner created successfully");
scanner.set_config(SymbolType::QRCODE, 0, 1)?;
println!("Scanner configured for QR code detection");
let width = 10;
let height = 10;
let data: Vec<u8> = vec![128; (width * height) as usize];
let image = Image::from_gray(&data, width, height)?;
println!("Created {}x{} grayscale image", width, height);
let symbols = scanner.scan_image(&image)?;
println!("Scanning completed");
let mut count = 0;
for symbol in symbols {
count += 1;
println!(
"Symbol {}: Type={:?}, Data={}",
count,
symbol.symbol_type(),
symbol.data()
);
}
if count == 0 {
println!("No symbols detected (expected for random noise image)");
}
Ok(())
}