Read QR code from byte using ZXing.Net on .net7

huangapple go评论96阅读模式
英文:

Read QR code from byte using ZXing.Net on .net7

问题

以下是翻译好的代码部分:

  1. 这是我的代码
  2. public static string ReadQRCode(byte[] imageBytes)
  3. {
  4. var barcodeReader = new BarcodeReader();
  5. barcodeReader.Options.TryHarder = true;
  6. barcodeReader.Options.PossibleFormats = new[] { BarcodeFormat.QR_CODE };
  7. var result = barcodeReader.Decode(imageBytes);
  8. if (result != null) {
  9. return result.Text;
  10. }
  11. return null;
  12. }
  13. 但然后我收到了这个错误信息
  14. > 使用通用类型 'BarcodeReader<T>' 需要 1 个类型参数
  15. 请指导我如何解决这个问题
英文:

This is my code

  1. public static string ReadQRCode(byte[] imageBytes)
  2. {
  3. var barcodeReader = new BarcodeReader();
  4. barcodeReader.Options.TryHarder = true;
  5. barcodeReader.Options.PossibleFormats = new[] { BarcodeFormat.QR_CODE };
  6. var result = barcodeReader.Decode(imageBytes);
  7. if (result != null) {
  8. return result.Text;
  9. }
  10. return null;
  11. }

But then I got this error message

> Using the generic type 'BarcodeReader<T>' requires 1 type arguments

Please guide me to solve the problem

答案1

得分: 2

以下是翻译好的部分:

第一个例子使用

ZXing.Net.Bindings.Windows.Compatibility
请注意,此包仅适用于 Windows。

  1. using ZXing;
  2. using ZXing.Common;
  3. using ZXing.QrCode;
  4. using ZXing.Windows.Compatibility;
  5. public static string ReadQRCode(byte[] byteArray)
  6. {
  7. Bitmap target;
  8. target = ByteToBitmap(byteArray);
  9. var source = new BitmapLuminanceSource(target);
  10. var bitmap = new BinaryBitmap(new HybridBinarizer(source));
  11. var reader = new QRCodeReader();
  12. var result = reader.decode(bitmap);
  13. return result.Text;
  14. }
  15. public static Bitmap ByteToBitmap(byte[] byteArray)
  16. {
  17. Bitmap target;
  18. using (var stream = new MemoryStream(byteArray)) {
  19. target = new Bitmap(stream);
  20. }
  21. return target;
  22. }

第二个例子使用

ZXing.Net.Bindings.ImageSharp.V2

  1. using ZXing;
  2. using ZXing.Common;
  3. using ZXing.ImageSharp;
  4. using ZXing.QrCode;
  5. public static string ReadQRCode(byte[] byteArray)
  6. {
  7. // 从字节数组加载图像
  8. Image<Rgba32> image = SixLabors.ImageSharp.Image.Load<Rgba32>(byteArray);
  9. // 使用 Rgba32 像素格式创建 ImageSharpLuminanceSource 的实例
  10. var luminanceSource = new ImageSharpLuminanceSource<Rgba32>(image);
  11. var bitmap = new BinaryBitmap(new HybridBinarizer(luminanceSource));
  12. var reader = new QRCodeReader();
  13. var result = reader.decode(bitmap);
  14. return result.Text;
  15. }
英文:

This is how I solve it
First you need to install one of the packages from (ZXing.Net.Bindings.*)
First example using
> ZXing.Net.Bindings.Windows.Compatibility
Please note this package only works on Windows.

  1. using ZXing;
  2. using ZXing.Common;
  3. using ZXing.QrCode;
  4. using ZXing.Windows.Compatibility;
  5. public static string ReadQRCode(byte[] byteArray)
  6. {
  7. Bitmap target;
  8. target = ByteToBitmap(byteArray);
  9. var source = new BitmapLuminanceSource(target);
  10. var bitmap = new BinaryBitmap(new HybridBinarizer(source));
  11. var reader = new QRCodeReader();
  12. var result = reader.decode(bitmap);
  13. return result.Text;
  14. }
  15. public static Bitmap ByteToBitmap(byte[] byteArray)
  16. {
  17. Bitmap target;
  18. using (var stream = new MemoryStream(byteArray)) {
  19. target = new Bitmap(stream);
  20. }
  21. return target;
  22. }

Second example using
> ZXing.Net.Bindings.ImageSharp.V2

  1. using ZXing;
  2. using ZXing.Common;
  3. using ZXing.ImageSharp;
  4. using ZXing.QrCode;
  5. public static string ReadQRCode(byte[] byteArray)
  6. {
  7. // Load image from byte array
  8. Image&lt;Rgba32&gt; image = SixLabors.ImageSharp.Image.Load&lt;Rgba32&gt;(byteArray);
  9. // Create an instance of ImageSharpLuminanceSource with Rgba32 pixel format
  10. var luminanceSource = new ImageSharpLuminanceSource&lt;Rgba32&gt;(image);
  11. var bitmap = new BinaryBitmap(new HybridBinarizer(luminanceSource));
  12. var reader = new QRCodeReader();
  13. var result = reader.decode(bitmap);
  14. return result. Text;
  15. }

huangapple
  • 本文由 发表于 2023年3月4日 02:51:38
  • 转载请务必保留本文链接:https://go.coder-hub.com/75630846.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定