zxing条码扫描库如何解码EAN128条码
How to decode EAN128 barcode with zxing barcode scanning library
我正在尝试使用 zxing 条码扫描库读取 EAN128 条码。我正在像这样在 Xamarin 共享项目中使用它……
private async void OnButtonForBarcodeReadPressed(object sender, EventArgs e)
{
ZXingScannerPage scannerPage = new ZXingScannerPage();
scannerPage.OnScanResult += (result) =>
{
scannerPage.IsScanning = false;
var rawBytes = result.RawBytes;
var barcodeType = result.BarcodeFormat.ToString();
var barcodeText = result.Text;
};
}
问题是结果的文本属性不包含特殊字符。
我注意到 属性 RawBytes 的 result (这是一个字节数组)有一个字节 102每个特殊字符的正确位置,但我似乎无法理解其余字节的计算方式。
这是一个例子。我生成了这个 EAN128 条码 (21)500600(11)201201。我是用在线条形码生成器完成的,所以我确信在正确的位置有一个特殊字符!当我用 zxing 扫描时,Text 属性 的 result 是“2150060011201201”,长度正好是 16 个字符,所以有不包括特殊字符。而this is an image的字节数组在RawBytes属性。正如您所看到的,每个应用程序标识符之前都有一个字节 102。但其余部分似乎有点。当你在条形码中添加一个字母时,它会更加混乱。
有没有一种方法可以从 属性 RawBytes 中获取带有特殊字符的正确条码文本,或者有一种方法可以配置 zxing 以便 文本 属性包含特殊字符?
您需要设置扫描选项的条码格式。
var options = new ZXing.Mobile.MobileBarcodeScanningOptions
{
PossibleFormats = new List<ZXing.BarcodeFormat>() {
ZXing.BarcodeFormat.CODE_128
},
ryHarder = true,
AssumeGS1 = true,
AutoRotate = true,
};
我正在尝试使用 zxing 条码扫描库读取 EAN128 条码。我正在像这样在 Xamarin 共享项目中使用它……
private async void OnButtonForBarcodeReadPressed(object sender, EventArgs e)
{
ZXingScannerPage scannerPage = new ZXingScannerPage();
scannerPage.OnScanResult += (result) =>
{
scannerPage.IsScanning = false;
var rawBytes = result.RawBytes;
var barcodeType = result.BarcodeFormat.ToString();
var barcodeText = result.Text;
};
}
问题是结果的文本属性不包含特殊字符。
我注意到 属性 RawBytes 的 result (这是一个字节数组)有一个字节 102每个特殊字符的正确位置,但我似乎无法理解其余字节的计算方式。
这是一个例子。我生成了这个 EAN128 条码 (21)500600(11)201201。我是用在线条形码生成器完成的,所以我确信在正确的位置有一个特殊字符!当我用 zxing 扫描时,Text 属性 的 result 是“2150060011201201”,长度正好是 16 个字符,所以有不包括特殊字符。而this is an image的字节数组在RawBytes属性。正如您所看到的,每个应用程序标识符之前都有一个字节 102。但其余部分似乎有点。当你在条形码中添加一个字母时,它会更加混乱。
有没有一种方法可以从 属性 RawBytes 中获取带有特殊字符的正确条码文本,或者有一种方法可以配置 zxing 以便 文本 属性包含特殊字符?
您需要设置扫描选项的条码格式。
var options = new ZXing.Mobile.MobileBarcodeScanningOptions
{
PossibleFormats = new List<ZXing.BarcodeFormat>() {
ZXing.BarcodeFormat.CODE_128
},
ryHarder = true,
AssumeGS1 = true,
AutoRotate = true,
};