mod exif;
mod jpeg;
mod png;
mod tiff;
#[cfg(feature = "svg")]
mod svg;
#[cfg(feature = "webp")]
mod webp;
pub use jpeg::JpegParser;
pub use png::PngParser;
pub use tiff::TiffParser;
#[cfg(feature = "svg")]
pub use svg::SvgParser;
#[cfg(feature = "webp")]
pub use webp::WebpParser;
use crate::core::{Content, Metadata};
#[cfg(feature = "ocr")]
use crate::core::MetadataValue;
pub(crate) fn maybe_ocr_content(_data: &[u8], _metadata: &mut Metadata) -> Content {
#[cfg(feature = "ocr")]
{
use crate::ocr::{run_ocr, OcrAttempt};
match run_ocr(_data) {
OcrAttempt::Disabled => {
}
OcrAttempt::NoTextFound { mean_confidence, regions } => {
_metadata.insert(
"ocr_status".to_string(),
MetadataValue::Text("no_text_found".into()),
);
_metadata.insert(
"ocr_applied".to_string(),
MetadataValue::Boolean(false),
);
_metadata.insert(
"ocr_confidence".to_string(),
MetadataValue::Float(mean_confidence as f64),
);
_metadata.insert(
"ocr_regions".to_string(),
MetadataValue::Number(regions as i64),
);
}
OcrAttempt::Error(msg) => {
_metadata.insert(
"ocr_status".to_string(),
MetadataValue::Text("error".into()),
);
_metadata.insert(
"ocr_applied".to_string(),
MetadataValue::Boolean(false),
);
_metadata.insert("ocr_error".to_string(), MetadataValue::Text(msg));
}
OcrAttempt::Recognized { text, mean_confidence } => {
_metadata.insert(
"ocr_status".to_string(),
MetadataValue::Text("recognized".into()),
);
_metadata.insert(
"ocr_applied".to_string(),
MetadataValue::Boolean(true),
);
_metadata.insert(
"ocr_confidence".to_string(),
MetadataValue::Float(mean_confidence as f64),
);
return Content::Text(text);
}
}
}
Content::None
}