Skip to main content

06_image_analysis/
06_image_analysis.rs

1use std::path::PathBuf;
2
3use visionkit::prelude::*;
4
5fn asset_path() -> PathBuf {
6    PathBuf::from(env!("CARGO_MANIFEST_DIR"))
7        .join("examples")
8        .join("assets")
9        .join("live_text.png")
10}
11
12fn main() -> Result<(), Box<dyn std::error::Error>> {
13    if !ImageAnalyzer::is_supported() {
14        println!("ImageAnalyzer is not supported on this Mac");
15        return Ok(());
16    }
17
18    let analyzer = ImageAnalyzer::new()?;
19    let analysis = analyzer.analyze_cg_image_at_path(
20        asset_path(),
21        ImageOrientation::Up,
22        &ImageAnalyzerConfiguration::new(
23            ImageAnalysisTypes::TEXT | ImageAnalysisTypes::MACHINE_READABLE_CODE,
24        ),
25    )?;
26
27    println!(
28        "has text results: {}",
29        analysis.has_results(ImageAnalysisTypes::TEXT)?
30    );
31    println!("transcript: {}", analysis.transcript()?);
32    Ok(())
33}