zxing

安装nuget包【ZXing.Net】

/// <summary>
/// 图片转换
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
LuminanceSource CreateLuminanceSourceFromMyImageType(Image image)
{
    // 转换为Bitmap,以便可以访问像素数据  
    Bitmap bitmap = image as Bitmap ?? new Bitmap(image);

    // 锁定位图的内存区域以获取原始图像数据  
    Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
    BitmapData bitmapData = bitmap.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);

    // 计算需要的字节数组大小(每像素3字节:R, G, B)  
    int bytes = bitmapData.Stride * bitmap.Height;
    byte[] rgbRawBytes = new byte[bytes];

    // 将原始图像数据复制到数组中  
    Marshal.Copy(bitmapData.Scan0, rgbRawBytes, 0, bytes);

    // 解锁位图的内存区域  
    bitmap.UnlockBits(bitmapData);

    // 释放Bitmap资源(如果它不是传入的原始Image)  
    if (bitmap != image)
    {
        bitmap.Dispose();
    }
    return new RGBLuminanceSource(rgbRawBytes, image.Width, image.Height);
}



//调用
var path = "C:\\Users\\ivesBao\\Desktop\\图片1.png";
//var pareResult = RecognizePic("C:\\Users\\ivesBao\\Desktop\\图片1.png");
//var img = new Bitmap();

Func<Image, LuminanceSource> createLuminanceSource = _image => CreateLuminanceSourceFromMyImageType(_image);
var reader = new BarcodeReader<Image>(createLuminanceSource);
var image = Image.FromFile(path);
var result = reader.Decode(image);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.

ThoughtWorks.QRCode

安装nuget包【ThoughtWorks.QRCodeCore】

var tempPicPath= "C:\\Users\\ivesBao\\Desktop\\图片1.png";

   Image primaryImage = Image.FromFile(tempPicPath);
                        Bitmap pImg = (Bitmap)primaryImage;
                        //二维码识别
                        //questionId=38004b055724020001&roomId=230830102938240208&userId=230830103040240100
                        string decodedString = new QRCodeDecoder().decode(
                            new QRCodeBitmapImage(pImg), Encoding.UTF8);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

[参考]
 C#二维码生成解析

联系我:renhanlinbsl@163.com