mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-26 04:12:34 +00:00
36 lines
1.1 KiB
Markdown
36 lines
1.1 KiB
Markdown
# rxing - cRustacean Crossing
|
|
|
|
This is a port of the ZXing (https://github.com/zxing/zxing) java barcode library to pure rust. Conversion was done by hand. Original license resides with the authors of zxing.
|
|
|
|
Porting of the testing library is incomplete.
|
|
|
|
Porting was done with the rust language in mind, though some parts may resemble java more directly than a proper clean-sheet rust implementation.
|
|
|
|
```
|
|
use std::{collections::HashMap, rc::Rc};
|
|
|
|
use rxing::multi::MultipleBarcodeReader;
|
|
|
|
use image;
|
|
|
|
use rxing;
|
|
|
|
fn main() {
|
|
let file_name = "test_image.jpeg";
|
|
|
|
let img = image::open(file_name).unwrap();
|
|
|
|
let multi_format_reader = rxing::MultiFormatReader::default();
|
|
let mut scanner = rxing::multi::GenericMultipleBarcodeReader::new(multi_format_reader);
|
|
let results = scanner.decodeMultipleWithHints(
|
|
&rxing::BinaryBitmap::new(Rc::new(rxing::common::HybridBinarizer::new(Box::new(
|
|
rxing::BufferedImageLuminanceSource::new(img),
|
|
)))),
|
|
&HashMap::new(),
|
|
).expect("decodes");
|
|
|
|
for result in results {
|
|
println!("{} -> {}",result.getBarcodeFormat(), result.getText())
|
|
}
|
|
}
|
|
``` |