C#의 이미지에서 바코드 읽기

프로그래밍 방식으로 이미지에서 바코드 또는 QR 코드를 읽는 방법을 찾고 계십니까? 당신이 개발자이고 자신만의 바코드 판독기 응용 프로그램을 만들어야 한다면? 잘 찾아오셨습니다. 바코드는 재고를 정확하게 추적하고 제조에서 판매 지점까지 제품을 배송하는 데 매우 중요합니다. .NET 애플리케이션에서 다양한 유형의 바코드 및 QR 코드를 쉽게 감지, 인식 및 읽을 수 있습니다. 이 기사에서는 몇 가지 간단한 단계에 따라 C#의 이미지에서 바코드를 읽는 방법을 보여줍니다. 이 문서를 바코드 판독기 또는 스캐너 응용 프로그램 개발을 위한 단계별 가이드로 사용할 수 있습니다.

먼저 입력 이미지에서 사용할 수 있는 바코드를 읽기 위해 C# Barcode Reader API를 살펴보겠습니다. 다음으로 이미지에서 바코드 데이터를 감지, 인식 및 추출하는 방법을 단계적으로 살펴보겠습니다. 자세한 단계와 코드 조각을 찾을 수 있습니다. 마지막으로 추가 개선을 위한 유용한 링크를 제공합니다. 시작하겠습니다!

이 기사에서 다룰 주제는 다음과 같습니다.

  1. 이미지에서 바코드를 읽는 C# API
  2. 이미지에서 바코드를 읽는 단계
  3. 비트맵에서 바코드 읽기
  4. 스트림을 사용하여 이미지에서 바코드 읽기
  5. 특정 유형의 바코드 읽는 방법
  6. 이미지에서 여러 유형의 바코드 읽기
  7. 미리 정의된 심볼로지 세트 감지 및 읽기
  8. 이미지에서 여러 바코드 감지 및 읽기
  9. 바코드의 X 및 Y 좌표 가져오기
  10. 이미지의 특정 영역에서 바코드 읽기
  11. 이미지의 여러 영역에서 바코드 읽기

이미지에서 바코드를 읽는 C# API

이미지에서 바코드를 읽기 위해 Aspose.BarCode for .NET API를 사용합니다. API를 사용하면 광범위한 바코드 기호를 생성, 스캔 및 읽을 수 있습니다. JPEG, TIFF, PNG, BMPGIF 형식의 바코드 이미지를 렌더링할 수 있습니다.

API는 주어진 이미지에서 60개 이상의 서로 다른 바코드 유형을 인식할 수 있는 BarCodeReader 클래스를 제공합니다. 바코드 감지의 첫 번째 단계는 바코드가 있는 이미지의 소스를 지정하는 것입니다. 이것은 파일, 비트맵 객체 또는 스트림일 수 있습니다. 그런 다음 DecodeType 매개변수 내에서 대상 기호를 지정해야 합니다. DecodeType.AllSupportedTypes를 지정하여 지원되는 모든 다른 유형의 기호를 살펴볼 수 있습니다. 이 클래스의 ReadBarCodes() 메서드는 인식된 바코드 배열을 반환합니다. API의 BarCodeResult 클래스는 바코드 유형, 코드 텍스트, 지역 및 기타 매개변수와 같은 인식된 바코드 데이터를 저장합니다.

API를 사용하면 바코드 판독기가 읽어야 하는 이미지 영역을 지정할 수도 있습니다. 이것은 .NET Rectangle 개체를 사용하여 수행할 수 있으며 기본적으로 바코드가 포함되지 않은 이미지 영역에서 바코드를 찾을 필요가 없습니다.

API의 DLL을 다운로드하거나 NuGet을 사용하여 설치하십시오.

PM> Install-Package Aspose.BarCode 

C#을 사용하여 이미지에서 바코드 읽기

아래 단계에 따라 이미지에서 바코드를 쉽게 읽을 수 있습니다.

  1. 먼저 BarCodeReader 클래스를 사용하여 이미지를 로드합니다.
  2. readBarCodes() 메서드를 호출하고 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  3. 마지막으로 결과를 반복하고 바코드의 유형과 텍스트를 표시합니다.

다음 코드 샘플은 C#의 이미지에서 바코드를 읽는 방법을 보여줍니다.

// 이 코드 예제는 이미지 파일에서 바코드를 읽는 방법을 보여줍니다.
// 바코드 리더 초기화
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");

// 바코드 읽기 및 결과 표시
foreach(BarCodeResult result in reader.ReadBarCodes()) 
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
이미지에서 바코드를 읽습니다.

C#의 이미지에서 바코드를 읽습니다.

C#의 비트맵에서 바코드 읽기

아래 단계에 따라 이미지에서 바코드를 쉽게 읽을 수 있습니다.

  1. 먼저 Bitmap 클래스를 사용하여 이미지를 로드합니다.
  2. 다음으로 Bitmap 개체를 사용하여 BarCodeReader 클래스의 인스턴스를 만듭니다.
  3. ReadBarCodes() 메서드를 호출하고 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  4. 마지막으로 결과를 반복하고 바코드의 유형과 텍스트를 표시합니다.

다음 코드 샘플은 C#의 비트맵에서 바코드를 읽는 방법을 보여줍니다.

// 이 코드 예제는 비트맵에서 바코드를 읽는 방법을 보여줍니다.
// 비트맵에 이미지 로드
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");

// 바코드 판독기 초기화
BarCodeReader reader = new BarCodeReader(bmp);

// 제공된 영역의 모든 바코드 읽기
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
C#의 비트맵 이미지에서 바코드를 읽습니다.

C#의 Bitmap에서 바코드를 읽습니다.

C#에서 Stream을 사용하여 이미지에서 바코드 읽기

파일 스트림을 사용하여 바코드 이미지를 로드하고 아래 제공된 단계에 따라 바코드를 읽을 수도 있습니다.

  1. 먼저 FileStream 클래스를 사용하여 이미지를 로드합니다.
  2. 다음으로 스트림 개체를 사용하여 BarCodeReader 클래스의 인스턴스를 만듭니다.
  3. ReadBarCodes() 메서드를 호출하고 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  4. 마지막으로 결과를 반복하고 바코드의 유형과 텍스트를 표시합니다.

다음 코드 샘플은 C#에서 Stream을 사용하여 이미지에서 바코드를 읽는 방법을 보여줍니다.

// 이 코드 예제는 파일 스트림을 사용하여 이미지에서 바코드를 읽는 방법을 보여줍니다.
// 이미지 로드
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);

// 바코드 판독기 초기화
BarCodeReader reader = new BarCodeReader(stream);

// 제공된 영역의 모든 바코드 읽기
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

C#의 이미지에서 특정 유형의 바코드 읽기

인식 완료에 소요되는 시간을 최소화하고 오래된 바코드를 인식하려는 시도를 피하기 위해 인식 대상 바코드 심볼로지를 선택하는 것이 좋습니다.

아래 단계에 따라 대상 바코드 유형을 지정하고 이미지에서 바코드를 읽을 수 있습니다.

  1. 먼저 BarCodeReader 클래스를 사용하여 이미지를 로드합니다.
  2. 다음으로 Code39Standard와 같은 바코드 디코드 유형을 설정합니다.
  3. 그런 다음 ReadBarCodes() 메서드를 사용하여 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  4. 마지막으로 결과를 반복하고 바코드의 유형과 텍스트를 표시합니다.

다음 코드 샘플은 C#을 사용하여 이미지에서 특정 유형의 바코드를 읽는 방법을 보여줍니다.

// 이 코드 예제는 이미지에서 특정 디코딩 유형의 바코드를 읽는 방법을 보여줍니다.
// 바코드 리더 초기화
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);

// Code39Extended 유형의 바코드 읽기
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
이미지에서 특정 유형의 바코드 인식

C#의 이미지에서 특정 유형의 바코드를 인식합니다.

C#의 이미지에서 여러 유형의 바코드 읽기

아래 단계에 따라 여러 바코드 유형을 지정할 수도 있습니다.

  1. 먼저 BarCodeReader 클래스를 사용하여 이미지를 로드합니다.
  2. 다음으로 SetBarCodeReadType() 메서드를 사용하여 바코드 디코드 유형을 설정합니다.
  3. 그런 다음 ReadBarCodes() 메서드를 사용하여 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  4. 마지막으로 결과를 반복하고 바코드의 유형과 텍스트를 표시합니다.

다음 코드 샘플은 C#을 사용하여 이미지에서 여러 유형의 바코드를 읽는 방법을 보여줍니다.

// 이 코드 예제는 이미지에서 여러 디코드 유형의 바코드를 읽는 방법을 보여줍니다.
// 바코드 리더 초기화
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

// 바코드 읽기
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
C#의 이미지에서 여러 유형의 바코드 읽기

C#의 이미지에서 여러 유형의 바코드 읽기

아래와 같이 BarCodeReader 클래스의 생성자에서 여러 디코드 유형을 지정할 수도 있습니다.

BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

C#의 이미지에서 사전 정의된 바코드 유형 세트 읽기

DecodeTypes 클래스에 정의된 인식을 위해 미리 정의된 기호 집합을 읽을 수 있습니다. 다음과 같은 미리 정의된 집합을 설정할 수 있습니다.

  • AllSupportedTypes - 지원되는 모든 바코드 유형
  • Types1D - 지원되는 모든 1D 심볼로지
  • Types2D - 지원되는 모든 2D 심볼로지
  • PostalTypes - 우편 서비스에서 주로 사용하는 지원되는 모든 우편 기호
  • MostCommonTypes - 정의된 가장 널리 사용되는 바코드 표준 세트

아래 단계에 따라 미리 정의된 집합을 지정할 수 있습니다.

  1. 먼저 BarCodeReader 클래스를 사용하여 이미지를 로드합니다.
  2. 그런 다음 BarCodeReader 생성자 또는 SetBarCodeReadType 메서드(예: DecodeType.Types2D)에서 바코드 디코드 유형을 설정합니다.
  3. 그런 다음 ReadBarCodes() 메서드를 사용하여 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  4. 마지막으로 결과를 반복하고 바코드의 유형과 텍스트를 표시합니다.

다음 코드 샘플은 C#에서 미리 정의된 기호 세트를 사용하여 바코드를 읽는 방법을 보여줍니다.

// 이 코드 예제는 미리 정의된 기호 세트를 사용하여 바코드를 읽는 방법을 보여줍니다.
// 바코드 리더 초기화
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);

// 바코드 읽기 및 결과 표시
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
C#의 이미지에서 사전 정의된 바코드 유형 세트 읽기

C#의 이미지에서 사전 정의된 바코드 유형 세트 읽기

C#의 이미지에서 여러 바코드 읽기

아래 단계에 따라 이미지에서 사용 가능한 모든 바코드를 읽을 수도 있습니다.

  1. 먼저 BarCodeReader 클래스를 사용하여 이미지를 로드합니다.
  2. 다음으로 바코드 디코드 유형을 ALLSUPPORTEDTYPES로 설정합니다.
  3. 그런 다음 ReadBarCodes() 메서드를 사용하여 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  4. 마지막으로 결과를 반복하고 바코드의 유형과 텍스트를 표시합니다.

다음 코드 샘플은 C#를 사용하여 이미지에서 여러 바코드를 읽는 방법을 보여줍니다.

// 이 코드 예제는 이미지에서 바코드 여러 바코드를 읽는 방법을 보여줍니다.
// 바코드 리더 초기화
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);

// 입력 이미지에서 사용 가능한 모든 유형의 바코드 읽기
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
이미지에서 여러 바코드를 읽습니다.

이미지에서 여러 바코드를 읽습니다.

C#을 사용하여 바코드의 X 및 Y 좌표 얻기

아래 단계에 따라 이미지에서 감지된 바코드의 X 및 Y 좌표를 읽을 수 있습니다.

  1. 먼저 BarCodeReader 클래스를 사용하여 이미지를 로드합니다.
  2. 다음으로 ReadBarCodes() 메서드를 사용하여 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  3. 그런 다음 결과를 반복하고 Region이 null이 아닌지 확인합니다.
  4. 그런 다음 Points를 사용하여 바코드 영역을 경계로 하는 Points 배열을 가져옵니다.
  5. 마지막으로 바코드의 X 및 Y 지점을 표시합니다.

다음 코드 샘플은 C#를 사용하여 이미지에서 바코드의 X 및 Y 좌표 포인트를 가져오는 방법을 보여줍니다.

// 이 코드 예제는 이미지에서 바코드의 X 및 Y 영역 포인트를 읽는 방법을 보여줍니다.
// 바코드 리더 초기화
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);

// 바코드 읽기
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    if (result.Region != null)
    {
        // 감지된 모든 바코드의 x 및 y 좌표 표시
        Point[] point = result.Region.Points;
        Console.Out.WriteLine("Top left coordinates: X = " + point[0].X + ", Y = " + point[0].Y);
        Console.Out.WriteLine("Bottom left coordinates: X = " + point[1].X + ", Y = " + point[1].Y);
        Console.Out.WriteLine("Bottom right coordinates: X = " + point[2].X + ", Y = " + point[2].Y);
        Console.Out.WriteLine("Top right coordinates: X = " + point[3].X + ", Y = " + point[3].Y);
    }
}
바코드의 X 및 Y 좌표 얻기

이미지에서 바코드의 X 및 Y 좌표를 가져옵니다.

C# 이미지의 특정 영역에서 바코드 읽기

아래 단계에 따라 이미지의 특정 영역 또는 영역에서 바코드를 읽을 수 있습니다.

  1. 먼저 Bitmap 방식을 사용하여 이미지 파일의 버퍼 데이터를 읽습니다.
  2. 다음으로 BarCodeReader 클래스의 인스턴스를 만듭니다. 이미지, 사각형 영역 및 Decode Type을 인수로 사용합니다.
  3. 그런 다음 ReadBarCodes() 메서드를 사용하여 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  4. 마지막으로 결과를 반복하고 바코드의 유형과 텍스트를 표시합니다.

다음 코드 샘플은 C#을 사용하여 이미지의 특정 영역에서 바코드를 읽는 방법을 보여줍니다.

// 이 코드 예제는 이미지의 특정 영역에서 바코드를 읽는 방법을 보여줍니다.
// 이미지 로드
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");

// BarCodeReader 클래스의 인스턴스 생성
// 그리고 바코드를 찾을 영역을 지정합니다.
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));

// 제공된 영역의 모든 바코드 읽기
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
이미지의 특정 영역에서 바코드를 읽습니다.

C#에서 이미지의 특정 영역에서 바코드를 읽습니다.

C# 이미지의 여러 영역에서 바코드 읽기

아래 단계에 따라 이미지의 여러 영역에서 바코드를 읽을 수도 있습니다.

  1. 먼저 Bitmap 클래스를 사용하여 이미지를 로드합니다.
  2. 다음으로 Rectangle 클래스를 사용하여 사각형을 정의합니다.
  3. 그런 다음 BarCodeReader 클래스의 인스턴스를 만듭니다.
  4. 한편, 이미지 개체와 사각형을 인수로 사용하여 SetBarCodeImage()를 호출합니다.
  5. 필요에 따라 SetBarCodeReadType() 메서드를 사용하여 바코드 읽기 유형을 설정합니다.
  6. 그런 다음 ReadBarCodes() 메서드를 사용하여 BarCodeResult 클래스 개체에서 인식 결과를 가져옵니다.
  7. 마지막으로 결과를 반복하고 바코드의 유형과 텍스트를 표시합니다.

다음 코드 샘플은 C#을 사용하여 이미지의 여러 영역에서 바코드를 읽는 방법을 보여줍니다.

// 이 코드 예제는 이미지의 특정 영역에서 바코드를 읽는 방법을 보여줍니다.
// 비트맵에 이미지 로드
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// 원본 이미지의 2D 바코드 사각형
Rectangle rect2D = new Rectangle(0, 0, 400, 200);

// 원본 이미지의 Code128 바코드 사각형
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);

// 바코드 판독기 초기화
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);

// 제공된 영역의 모든 바코드 읽기
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
이미지의 여러 영역에서 바코드를 읽습니다.

C#에서 이미지의 여러 영역에서 바코드를 읽습니다.

무료 라이선스 받기

무료 임시 라이선스를 받아 평가 제한 없이 라이브러리를 사용해 볼 수 있습니다.

결론

이 문서에서는 다음 방법을 배웠습니다.

  • 바코드 이미지 파일 로드;
  • 이미지를 비트맵으로 읽거나 파일 스트림을 사용하여 읽습니다.
  • 이미지에서 다양한 유형의 바코드를 인식합니다.
  • 바코드 좌표 읽기;
  • 단일 이미지에서 여러 바코드를 감지하고 읽습니다.
  • 이미지의 특정 영역에서 바코드를 감지하고 읽습니다.

C#의 이미지에서 바코드를 읽는 것 외에도 문서를 사용하여 .NET API용 Aspose.BarCode에 대해 자세히 알아볼 수 있습니다. 모호한 점이 있는 경우 무료 지원 포럼에서 언제든지 문의해 주십시오.

또한보십시오