Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to detect barcodes when they are arranged horizontally and vertically at the same time? #593

Open
Wjat777 opened this issue Feb 20, 2025 · 0 comments

Comments

@Wjat777
Copy link

Wjat777 commented Feb 20, 2025

Hi,

Firstly, sorry to post this as an issue (I know this is not a bug), but I don't found a official community forum for ZXing integration.

I have this 3 situations:
BarCode1.jpg : 2 Barcodes code 128 and 2 Barcodes 39=>All codes are read correctly

Image

CODE_39[39;210;327;210] : ABC-1234
CODE_128[33;105;319;105] : ABC-abc-1234
CODE_128[424;52;600;52] : 123456787
CODE_39[404;213;628;213] : 123456

BarCode2.jpg : 2 Barcodes code 128 (1 horizontal and 1 vertical) and 3 Barcodes 39(1 horizontal and 1 vertical)=>Only horizontal codes are read correctly

Image

CODE_39[39;210;327;210] : ABC-1234
CODE_128[33;105;319;105] : ABC-abc-1234

BarCode3.jpg : 2 Barcodes code 128 (1 horizontal and 1 vertical) and 2 Barcodes 39(2 horizontal and 1 vertical)=>Only horizontal codes are read correctly and the duplicate code was ignored.

Image

CODE_39[39;267;327;267] : ABC-1234
CODE_128[33;133;319;133] : ABC-abc-1234

My code is very simple

private string ScanBarcode(Bitmap bitmap)
{
	Bitmap target;
	var reader = new ZXing.Windows.Compatibility.BarcodeReader()
	{
		AutoRotate = true,
		Options = new DecodingOptions
		{
			TryHarder = true,
			PureBarcode = false,
			ReturnCodabarStartEnd = true,
		}
	};
	Result[] result = reader.DecodeMultiple(bitmap);
	if (result==null) return "not found";
	string barcodeResult = "";
	foreach (var res in result)
	{
		barcodeResult += res.BarcodeFormat.ToString() +"[" +res.ResultPoints[0].X +";"+ res.ResultPoints[0].Y +";" +res.ResultPoints[1].X + ";" + res.ResultPoints[1].Y + "]" + " : " + res.Text + "\r\n";
	}
	return barcodeResult;
}

I'm using ZXing.Windows.Compatibility (0.16.13.0) and ZWing (0.16.10.0)

My questions are
1 - Exists an option to force read all barcodes regardless of orientation?
2 - Exists an option to force read all barcodes regardless of whether they are duplicated?

The case of duplication is weird but we have some forms where the same barcode is duplicated, I think, for redundancy reasons if the form is scratched out, but I would still like to get the position of both barcodes.

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant