mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-26 04:12:34 +00:00
update for shared state and improved performance
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
use std::{
|
||||
cell::RefCell,
|
||||
collections::HashMap,
|
||||
fs::{read_dir, read_to_string, File},
|
||||
io::Read,
|
||||
@@ -178,9 +179,13 @@ impl<T: MultipleBarcodeReader + Reader> PDF417MultiImageSpanAbstractBlackBoxTest
|
||||
let rotation: f32 = self.test_rxing_results.get(x).expect("ok").get_rotation();
|
||||
let rotated_image = Self::rotate_image(&image, rotation);
|
||||
let source = BufferedImageLuminanceSource::new(rotated_image);
|
||||
let bitmap = BinaryBitmap::new(Rc::new(HybridBinarizer::new(Box::new(source))));
|
||||
let mut bitmap = BinaryBitmap::new(Rc::new(RefCell::new(
|
||||
HybridBinarizer::new(Box::new(source)),
|
||||
)));
|
||||
|
||||
if let Ok(res) = Self::decode_pdf417(&bitmap, false, &mut self.barcode_reader) {
|
||||
if let Ok(res) =
|
||||
Self::decode_pdf417(&mut bitmap, false, &mut self.barcode_reader)
|
||||
{
|
||||
for r in res {
|
||||
results.push(r);
|
||||
}
|
||||
@@ -383,7 +388,9 @@ impl<T: MultipleBarcodeReader + Reader> PDF417MultiImageSpanAbstractBlackBoxTest
|
||||
let rotation = self.test_rxing_results.get(x).unwrap().get_rotation();
|
||||
let rotated_image = Self::rotate_image(&image, rotation);
|
||||
let source = BufferedImageLuminanceSource::new(rotated_image);
|
||||
let bitmap = BinaryBitmap::new(Rc::new(HybridBinarizer::new(Box::new(source))));
|
||||
let mut bitmap = BinaryBitmap::new(Rc::new(RefCell::new(HybridBinarizer::new(
|
||||
Box::new(source),
|
||||
))));
|
||||
|
||||
// if file_base_name == "15" {
|
||||
// let mut f = File::create("test_file_output.txt").unwrap();
|
||||
@@ -392,9 +399,13 @@ impl<T: MultipleBarcodeReader + Reader> PDF417MultiImageSpanAbstractBlackBoxTest
|
||||
// Self::rotate_image(&image, rotation).save("test_image.png").unwrap();
|
||||
// }
|
||||
|
||||
if let Ok(decoded) =
|
||||
self.decode(&bitmap, rotation, &expected_text, &expected_metadata, false)
|
||||
{
|
||||
if let Ok(decoded) = self.decode(
|
||||
&mut bitmap,
|
||||
rotation,
|
||||
&expected_text,
|
||||
&expected_metadata,
|
||||
false,
|
||||
) {
|
||||
if decoded {
|
||||
passed_counts[x] += 1;
|
||||
} else {
|
||||
@@ -412,9 +423,13 @@ impl<T: MultipleBarcodeReader + Reader> PDF417MultiImageSpanAbstractBlackBoxTest
|
||||
// } catch (ReaderException ignored) {
|
||||
// log::fine(format!("could not read at rotation {}", rotation));
|
||||
// }
|
||||
if let Ok(decoded) =
|
||||
self.decode(&bitmap, rotation, &expected_text, &expected_metadata, true)
|
||||
{
|
||||
if let Ok(decoded) = self.decode(
|
||||
&mut bitmap,
|
||||
rotation,
|
||||
&expected_text,
|
||||
&expected_metadata,
|
||||
true,
|
||||
) {
|
||||
if decoded {
|
||||
try_harder_counts[x] += 1;
|
||||
} else {
|
||||
@@ -550,7 +565,7 @@ impl<T: MultipleBarcodeReader + Reader> PDF417MultiImageSpanAbstractBlackBoxTest
|
||||
|
||||
fn decode(
|
||||
&mut self,
|
||||
source: &BinaryBitmap,
|
||||
source: &mut BinaryBitmap,
|
||||
rotation: f32,
|
||||
expected_text: &str,
|
||||
expected_metadata: &HashMap<RXingResultMetadataType, RXingResultMetadataValue>,
|
||||
@@ -739,7 +754,7 @@ impl<T: MultipleBarcodeReader + Reader> PDF417MultiImageSpanAbstractBlackBoxTest
|
||||
}
|
||||
|
||||
fn decode_pdf417(
|
||||
source: &BinaryBitmap,
|
||||
source: &mut BinaryBitmap,
|
||||
try_harder: bool,
|
||||
barcode_reader: &mut T,
|
||||
) -> Result<Vec<RXingResult>, Exceptions> {
|
||||
|
||||
Reference in New Issue
Block a user