
VB .NET 에서 카메라로 바코드를 읽는 방법
빠르게 발전하는 기술 환경에서 바코드 스캐너 장치는 소매 및 물류에서 의료 및 제조업까지 다양한 산업에서 필수적인 부분이 되었습니다. 다양하고 강력한 프로그래밍 언어인 Microsoft의 Visual Basic .NET은 개발자에게 카메라 피드에서 바코드를 직접 읽을 수 있는 응용 프로그램을 구축할 수 있는 강력한 프레임워크를 제공합니다. 이 기사는 IronBarcode 라이브러리를 사용한 Visual Basic 카메라를 통한 종합적인 바코드 리더 강의를 제공하는 것을 목표로 합니다. Iron Software에서 제작되었습니다.
IronBarcode 라이브러리는 바코드 이미지 파일을 읽을 수 있을 뿐만 아니라, 카메라에서 스트리밍된 바코드도 읽을 수 있습니다. 또한 PDF 문서에서 바코드를 읽는 것을 지원합니다. 한 번에 최대 하나의 바코드를 스캔할 수 있습니다. 바코드 유형은 VB.NET 바코드 리더 SDK에서 바코드 이미지를 읽을 때 지정되어야 합니다.
VB .NET에서 카메라로 바코드 읽는 방법
- Visual Studio에서 새로운 VB.NET 프로젝트 생성
- IronBarcode 라이브러리를 설치하고 프로젝트에 적용
- AForge Library를 사용하여 카메라에서 바코드를 이미지로 가져오기
- IronBarcode를 사용하여 바코드 이미지를 디코딩하기
필수 조건
- Visual Studio: Visual Studio 또는 기타 VB.NET 개발 환경이 설치되어 있는지 확인합니다.
- 호환 가능한 카메라: 해당 카메라가 장치에 연결되어 있는지 확인합니다.
- NuGet 패키지 관리자: 프로젝트에서 NuGet을 사용하여 패키지를 관리할 수 있는지 확인합니다.
단계 1: Visual Studio에서 새 Visual Basic .NET 프로젝트 만들기
카메라에서 바코드를 읽는 코드를 포함할 새 VB .NET Windows Forms 애플리케이션을 만들거나 기존 프로젝트를 사용하십시오.

다음 단계에서는 솔루션 및 프로젝트 이름을 제공할 수 있습니다.

.NET 버전을 선택하고 'Create' 버튼을 클릭합니다.
단계 2: IronBarcode 라이브러리 설치하기
VB.NET 프로젝트를 열고 NuGet 패키지 관리자 콘솔을 사용하여 IronBarcode 라이브러리를 설치합니다.

NuGet 패키지는 아래 설명된 대로 Visual Studio의 NuGet 패키지 관리자를 사용하여 설치할 수도 있습니다.

단계 3: 카메라에서 바코드 읽기
피드를 스캔하고 카메라에서 이미지를 캡처하려면 AForge Library가 필요합니다. 아래와 같이 NuGet 패키지 관리자에서 설치합니다.

다음 단계는 ToolBox에서 PictureBox 컨트롤을 폼에 추가하는 것입니다. 이는 카메라에서 이미지를 캡처하는 데 사용됩니다.

그런 다음 아래 코드를 폼 애플리케이션에 복사하고 IronBarcode에서 VB .NET 바코드 리더 컴포넌트를 만듭니다.
Imports IronBarCode
Imports AForge.Video
Imports AForge.Video.DirectShow
Public Class Form1
Private videoDevices As FilterInfoCollection
Private videoSource As VideoCaptureDevice
' Event handler for form load
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
videoDevices = New FilterInfoCollection(FilterCategory.VideoInputDevice)
If videoDevices.Count > 0 Then
videoSource = New VideoCaptureDevice(videoDevices(0).MonikerString)
AddHandler videoSource.NewFrame, AddressOf VideoSource_NewFrame
videoSource.Start()
Else
MessageBox.Show("No video devices found.")
Close()
End If
End Sub
' Event handler for capturing and processing new frame from the video source
Private Sub VideoSource_NewFrame(sender As Object, eventArgs As NewFrameEventArgs)
pictureBoxCamera.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
' Process each frame for barcode recognition
Dim image = DirectCast(pictureBoxCamera.Image, Bitmap)
Dim result = BarcodeReader.QuicklyReadOneBarcode(image, BarcodeEncoding.QRCode Or BarcodeEncoding.Code128)
If result IsNot Nothing Then
' Barcode found, handle the new result (e.g., display the barcode value)
Dim barcodeValue As String = result.Text
ShowBarcodeResult(barcodeValue)
End If
End Sub
' Method to display the barcode result
Private Sub ShowBarcodeResult(barcodeValue As String)
' Invoke on UI thread to update UI controls
If InvokeRequired Then
Invoke(New Action(Of String)(AddressOf ShowBarcodeResult), barcodeValue)
Else
' Display the barcode value in a MessageBox or any other UI element
MessageBox.Show("Barcode Value: " & barcodeValue, "Barcode Detected")
End If
End Sub
' Event handler for form closing
Private Sub MainForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If videoSource IsNot Nothing AndAlso videoSource.IsRunning Then
videoSource.SignalToStop()
videoSource.WaitForStop()
End If
End Sub
End Class
이 샘플 코드에서 QR 코드와 Code 128 바코드를 읽도록 구성했습니다. 먼저 PictureBox를 사용하여 웹캠 또는 기타 카메라 장치에서 바코드 이미지를 스캔하여 캡처합니다. 그런 다음 비트맵 이미지를 생성하여 IronBarcode BarcodeReader 클래스에 입력으로 제공합니다. 이 애플리케이션은 이미지에서 2D 바코드를 읽고 디코딩합니다. 디코딩 후 양성 결과가 나오면 결과는 메시지 박스에 표시됩니다.
라이센스 (무료 체험 가능)
IronBarcode를 사용하려면 appsettings.json에 라이선스 키를 배치해야 합니다.
{
"IronBarCode.LicenseKey": "MYLICENSE.KEY.TRIAL"
}
체험판 라이선스를 받으려면 이메일 ID를 제공하세요. 이메일 ID 제출 후, 키는 이메일로 전달됩니다.

결론
VB.NET에서 카메라로 바코드를 읽는 기능은 다양한 산업의 애플리케이션을 강화할 수 있는 강력한 기능입니다. IronBarcode 같은 라이브러리를 활용하고 이를 VB.NET 프로젝트에 통합함으로써 오늘날 기술 중심의 세계에서 요구되는 효율적이고 신뢰할 수 있는 바코드 스캔 애플리케이션을 만들 수 있습니다. 이 가이드는 시작점이며, 개발자는 특정 요구사항, 바코드 유형, 사용 사례에 맞게 솔루션을 더 맞춤화하고 최적화할 수 있습니다.

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.
관련 기사


