C로 바코드 읽기

17145 단어

C# 및 VB에서 바코드를 읽는 방법그물
  • IronBarcode를 NuGet 또는 DLL에서 다운로드
  • 하여 설치
  • 바코드 리더를 사용합니다.QuicklyReadOneBarcode에서 바코드나 QR을 읽는 방법
  • 스캔, PDF 또는 다중 프레임 Tiff 파일
  • 에서 여러 바코드 또는 QR 읽기
  • 불완전한 스캔과 사진에서 철 바코드를 읽을 수 있음
  • 튜토리얼 항목 다운로드 및 즉시 검색

  • Visual Studio 프로젝트에 바코드 라이브러리 설치
    Iron Barcode는 컴퓨터에서 바코드를 읽을 수 있는 다기능적이고 선진적이며 효율적인 라이브러리를 제공합니다.그물
    첫 번째 단계는 Iron Barcode를 설치하는 것입니다. DLL 프로젝트나 전역 프로그램 집합 캐시에 수동으로 설치할 수도 있지만, 저희 NuGet 패키지를 사용하면 이 점을 가장 쉽게 실현할 수 있습니다.IronBarcode는 C# 바코드 스캐너 응용 프로그램을 잘 생성할 수 있습니다.PM > Install-Package Barcode
    너의 첫 번째 바코드를 읽어라
    에서 바코드나 QR코드를 읽습니다.NET는 Iron 바코드 클래스 라이브러리.NET Barcode Reader를 사용하는 것이 매우 간단합니다.우리의 첫 번째 예에서, 우리는 어떻게 한 줄의 코드로 이 바코드를 읽는지 볼 수 있다.

    우리는 그것의 값, 그것의 이미지, 그것의 인코딩 형식, 그것의 이진 데이터 (만일 있다면) 를 추출한 후에 그것을 컨트롤러에 출력할 수 있다.
    C#:
    using IronBarCode;
    using System;
    BarcodeResult Result = BarcodeReader.QuicklyReadOneBarcode("GetStarted.png");
    if (Result !=null && Result.Text == "https://ironsoftware.com/csharp/barcode/")
    {
      Console.WriteLine("GetStarted was a success.  Read Value: " + Result.Text);
    }
    
    VB:
    Imports IronBarCode
    Imports System
    Private Result As BarcodeResult = BarcodeReader.QuicklyReadOneBarcode("GetStarted.png")
    If Result IsNot Nothing AndAlso Result.Text = "https://ironsoftware.com/csharp/barcode/" Then
      Console.WriteLine("GetStarted was a success.  Read Value: " & Result.Text)
    End If
    

    구체적으로
    다음 예에서 TryHarder 변수를QuicklyReadOneBarcode 방법에 추가합니다.이로 인해 더 많은 노력이 필요하지만, 모호하거나 손상되거나 기울어질 수 있는 QR코드를 더 깊이 있게 스캔할 수 있다.
    C#:
    BarcodeResult Result = BarcodeReader.QuicklyReadOneBarcode("TryHarderQR.png", BarcodeEncoding.QRCode | BarcodeEncoding.Code128 , true);
    
    VB:
    Dim Result As BarcodeResult = BarcodeReader.QuicklyReadOneBarcode("TryHarderQR.png", BarcodeEncoding.QRCode Or BarcodeEncoding.Code128, True)
    
    그러면 비뚤어진 QR코드가 읽힙니다.

    우리의 예시에서, 우리는 찾을 바코드 인코딩을 지정하거나 여러 형식을 지정할 수 있습니다.이렇게 하면 바코드 읽기 성능과 정확성을 크게 높일 수 있다.| 파이핑 문자 또는 Bitwize 또는 는 여러 형식을 동시에 지정하는 데 사용됩니다.
    마찬가지로 실현할 수 있지만 우리가 BarcodeReader.ReadASingleBarcode 방법을 계속 사용한다면 특이성이 더욱 높다.
    C#:
    BarcodeResult Result = IronBarCode.BarcodeReader.ReadASingleBarcode("TryHarderQR.png", BarcodeEncoding.QRCode | BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.High, BarcodeReader.BarcodeImageCorrection.MediumCleanPixels);
    
    VB:
    Dim Result As BarcodeResult = IronBarCode.BarcodeReader.ReadASingleBarcode("TryHarderQR.png", BarcodeEncoding.QRCode Or BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.High, BarcodeReader.BarcodeImageCorrection.MediumCleanPixels)
    

    여러 바코드 읽기

    PDF 문서
    다음 예에서 우리는 ascanned PDF document를 읽고 아주 적은 코드 줄에서 모든 1차원 형식의 바코드를 찾을 것이다.
    보시다시피 이것은 한 문서에서 한 개의 바코드를 읽는 것과 매우 비슷합니다. 단지 바코드가 있는 페이지 번호에 대한 새로운 정보가 생겼을 뿐입니다.
    C#:
    using IronBarCode;
    using System;
    using System.Drawing;
    // Multiple barcodes may be scanned up from a single document or image.  A PDF document may also used as the input image
    PagedBarcodeResult[] PDFResults = BarcodeReader.ReadBarcodesFromPdf("MultipleBarcodes.pdf");
    // Work with the results
    foreach (var PageResult in PDFResults)
    {
        string Value = PageResult.Value;
        int PageNum = PageResult.PageNumber;
        System.Drawing.Bitmap Img = PageResult.BarcodeImage;
        BarcodeEncoding BarcodeType = PageResult.BarcodeType;
        byte[] Binary = PageResult.BinaryValue;
        Console.WriteLine(PageResult.Value+" on page "+ PageNum);
    }     
    
    VB:
    Imports IronBarCode
    Imports System
    Imports System.Drawing
    ' Multiple barcodes may be scanned up from a single document or image.  A PDF document may also used as the input image
    Private PDFResults() As PagedBarcodeResult = BarcodeReader.ReadBarcodesFromPdf("MultipleBarcodes.pdf")
    ' Work with the results
    For Each PageResult In PDFResults
        Dim Value As String = PageResult.Value
        Dim PageNum As Integer = PageResult.PageNumber
        Dim Img As System.Drawing.Bitmap = PageResult.BarcodeImage
        Dim BarcodeType As BarcodeEncoding = PageResult.BarcodeType
        Dim Binary() As Byte = PageResult.BinaryValue
        Console.WriteLine(PageResult.Value &" on page " & PageNum)
    Next PageResult
    
    우리는 서로 다른 페이지에서 아래의 바코드를 찾았다.


    스캔과 말다툼
    다음 예에서 볼 수 있듯이 다중 프레임 TIFF에서 같은 결과를 발견할 수 있으며 이 부분은 PDF 처리와 유사합니다.

    C#:
    // Multi frame TIFF and GIF images can also be scanned, and multiple threads will be used automatically in the background for improved performance
    PagedBarcodeResult[] MultiFrameResults = BarcodeReader.ReadBarcodesFromMultiFrameTiff("Multiframe.tiff", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.High, BarcodeReader.BarcodeImageCorrection.MediumCleanPixels);            
     foreach (var PageResult in MultiFrameResults)
      {
        //...
      }
    
    VB:
    ' Multi frame TIFF and GIF images can also be scanned, and multiple threads will be used automatically in the background for improved performance
    Dim MultiFrameResults() As PagedBarcodeResult = BarcodeReader.ReadBarcodesFromMultiFrameTiff("Multiframe.tiff", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.High, BarcodeReader.BarcodeImageCorrection.MediumCleanPixels)
     For Each PageResult In MultiFrameResults
        '...
     Next PageResult
    

    다중 스레드
    여러 문서를 읽기 위해 문서 목록을 만들고 BarcodeReader.ReadBarcodesMultithreaded 방법을 사용하여 Iron Barcode에서 더 좋은 결과를 얻습니다.이것은 여러 개의 스레드와 가능한 모든 CPU 핵심을 사용하여 바코드 스캔 과정을 실행할 뿐만 아니라, 한 번에 한 바코드를 읽는 속도보다 훨씬 빠르다.
    C#:
    // The BarcodeResult.ReadBarcodesMultiThreaded method allows for faster barcode scanning of multiple images or PDFs.  All threads are automatically managed by IronBarCode.
    var ListOfDocuments = new[] { "Image1.png", "image2.JPG", "image3.pdf" };
    PagedBarcodeResult[] BatchResults = BarcodeReader.ReadBarcodesMultiThreaded(ListOfDocuments);
    // Work with the results
    foreach (var Result in BatchResults)
    {
        string Value = Result.Value;
        //...
    }
    
    VB:
    ' The BarcodeResult.ReadBarcodesMultiThreaded method allows for faster barcode scanning of multiple images or PDFs.  All threads are automatically managed by IronBarCode.
    Dim ListOfDocuments = { "Image1.png", "image2.JPG", "image3.pdf" }
    Dim BatchResults() As PagedBarcodeResult = BarcodeReader.ReadBarcodesMultiThreaded(ListOfDocuments)
    ' Work with the results
    For Each Result In BatchResults
        Dim Value As String = Result.Value
        '...
    Next Result
    

    불완전한 이미지에서 바코드 읽기
    현실 세계의 용례에서 우리는 완벽하게 캡처되지 않은 바코드를 읽기를 원할 수도 있다.그것들은 불완전한 이미지, 스캔, 사진일 수도 있고, 디지털 소음이나 비뚤어진 부분을 포함할 수도 있다.가장 전통적인 소스 오픈 소프트웨어를 사용하다.net 바코드 생성기와 리더 라이브러리, 불가능합니다.그러나 이것Barcode Reader in C#은 이것을 매우 간단하게 만들었다.
    다음 예에서는 Quickly ReadOneBarcode의 Try Harder 방법을 연구할 것입니다.이 단일 매개 변수는 Iron Barcode가 바코드를 제대로 읽지 않고 왜곡을 시도합니다.

    사진.
    사진 예시에서 우리는 특정한 바코드 회전 교정과 바코드 이미지 교정을 설정하여 디지털 소음을 교정하고 휴대전화 카메라에서 얻을 수 있는 경사, 투시와 회전을 합리적으로 기대할 것이다.

    C#:
    using IronBarCode;
    using System;
    using System.Drawing;
    // All BarcodeResult.Read methods provide the developer with control to correct image and photograph correction and straightening rotation and perspective from skewed images
    // * RotationCorrection   e.g BarcodeReader.BarcodeRotationCorrection.Extreme  un-rotates and removes perspective from barcode images.
    // * ImageCorrection      e.g BarcodeReader.BarcodeImageCorrection.DeepCleanPixels  separates Barcodes from background imagery and digital noise.
    // * BarcodeEncoding      e.g. BarcodeEncoding.Code128  Setting a specific Barcode format improves speed and reduces the risk of false positive results
    // Example with a photo image
    var PhotoResult = BarcodeReader.ReadASingleBarcode("Photo.png", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.Medium, BarcodeReader.BarcodeImageCorrection.DeepCleanPixels);
    string Value = PhotoResult.Value;
    System.Drawing.Bitmap Img = PhotoResult.BarcodeImage;
    BarcodeEncoding BarcodeType = PhotoResult.BarcodeType;
    byte[] Binary = PhotoResult.BinaryValue;
    Console.WriteLine(PhotoResult.Value);  
    
    VB:
    Imports IronBarCode
    Imports System
    Imports System.Drawing
    ' All BarcodeResult.Read methods provide the developer with control to correct image and photograph correction and straightening rotation and perspective from skewed images
    ' * RotationCorrection   e.g BarcodeReader.BarcodeRotationCorrection.Extreme  un-rotates and removes perspective from barcode images.
    ' * ImageCorrection      e.g BarcodeReader.BarcodeImageCorrection.DeepCleanPixels  separates Barcodes from background imagery and digital noise.
    ' * BarcodeEncoding      e.g. BarcodeEncoding.Code128  Setting a specific Barcode format improves speed and reduces the risk of false positive results
    ' Example with a photo image
    Private PhotoResult = BarcodeReader.ReadASingleBarcode("Photo.png", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.Medium, BarcodeReader.BarcodeImageCorrection.DeepCleanPixels)
    Private Value As String = PhotoResult.Value
    Private Img As System.Drawing.Bitmap = PhotoResult.BarcodeImage
    Private BarcodeType As BarcodeEncoding = PhotoResult.BarcodeType
    Private Binary() As Byte = PhotoResult.BinaryValue
    Console.WriteLine(PhotoResult.Value)
    

    스캔
    다음 예는 ascanned PDF에서 QR코드와 PDF-417 바코드를 읽는 방법을 보여 준다.문서를 손쉽게 정리할 수 있도록 바코드 회전 보정과 바코드 이미지 보정을 적절히 설정했으나, 요구 사항에 지나치게 부합하는 것으로 인해 막대한 성능 손실은 발생하지 않습니다.

    C#:
    // Multi frame TIFF and GIF images can also be scanned, and multiple threads will be used automatically in the background for improved performance
    var ScanResults = BarcodeReader.ReadBarcodesFromPdf("Scan.pdf", BarcodeEncoding.All, BarcodeReader.BarcodeRotationCorrection.Low, BarcodeReader.BarcodeImageCorrection.LightlyCleanPixels);
    // Work with the results
    foreach (var PageResult in ScanResults)
    {
      string Value = PageResult.Value;
      ///...
    } 
    
    VB:
    ' Multi frame TIFF and GIF images can also be scanned, and multiple threads will be used automatically in the background for improved performance
    Dim ScanResults = BarcodeReader.ReadBarcodesFromPdf("Scan.pdf", BarcodeEncoding.All, BarcodeReader.BarcodeRotationCorrection.Low, BarcodeReader.BarcodeImageCorrection.LightlyCleanPixels)
    ' Work with the results
    For Each PageResult In ScanResults
      Dim Value As String = PageResult.Value
      '''...
    Next PageResult
    

    미리 보기 그림
    마지막 예시에서, 우리는 이 C# Barcode Generator 심지어는 파손된 바코드 축소판도 읽을 수 있는 것을 볼 수 있다.

    우리의 바코드 리더 방법은 너무 작아서 실제 바코드가 될 수 없는 바코드 이미지를 자동으로 검출하고 미리 보기 그림과 관련된 모든 디지털 소음을 확대하고 제거한다.그것들을 다시 읽을 수 있게 하다.
    C#:
    // Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
    BarcodeResult SmallResult = BarcodeReader.QuicklyReadOneBarcode("ThumbnailOfBarcode.gif", BarcodeEncoding.Code128);
    
    VB:
    ' Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
    Dim SmallResult As BarcodeResult = BarcodeReader.QuicklyReadOneBarcode("ThumbnailOfBarcode.gif", BarcodeEncoding.Code128)
    

    요약
    한 마디로 하면 철 바코드는 다기능의 바코드다.Net Software Library 및 C# QR Code Generator 는 완벽한 스크린 캡처나 사진, 스캔 또는 기타 불완전한 실세계 이미지와 상관없이 다양한 바코드 형식을 읽을 수 있도록 설계되었습니다.

    한층 더 읽다
    철 바코드 사용에 대한 더 많은 정보를 알고 싶으시면 이 섹션의 다른 강좌와 저희 홈페이지의 예시를 보실 수 있습니다.대부분의 개발자들은 이것이 그들을 시작하기에 충분하다는 것을 발견했다.
    우리의 API ReferenceBarcodeReader 클래스와 BarcodeEncoding 매거에 대한 구체적인 참고는 이 C#Barcode 라이브러리로 실현할 수 있는 기능을 상세하게 보여 드리겠습니다.

    소스 코드 다운로드
    우리는 또한 당신이 이 강좌를 다운로드하고 스스로 운행할 것을 강력히 건의합니다.소스 코드를 다운로드하거나 GitHub에서 공유할 수 있습니다.이 자습서.NET Barcode Reader의 소스 코드는 C#에서 작성한 Visual Studio 2017 콘솔 응용 프로그램 프로젝트를 통해 확인할 수 있습니다.
  • Tutorial Github Repository
  • C# Source Code in a Zip File
  • 좋은 웹페이지 즐겨찾기