일반 Barcode Detection API

황제낙엽 2023.08.06 15:30 조회 수 : 513

sitelink1 https://developer.mozilla.org/en-US/docs...ection_API 
sitelink2 https://m.blog.naver.com/webhackyo/223063177318 
sitelink3  
sitelink4  
extra_vars4  
extra_vars5  
extra_vars6  

Barcode Detection API는 웹 개발자가 실시간으로 이미지 또는 비디오 스트림 내에서 바코드를 감지하고 디코딩할 수 있도록 하는 JavaScript API입니다. 

이 API는 아직 개발 중이며 아직 모든 브라우저에서 사용할 수 없는 WebCodecs API의 일부입니다.

다음은 Barcode Detection API를 사용하여 이미지 내의 바코드를 감지하고 디코딩하는 방법의 예입니다.

// Select the image element

const img = document.querySelector('img');

// Create a barcode detector

const barcodeDetector = new BarcodeDetector();

// Detect barcodes within the image

barcodeDetector.detect(img)

.then(barcodes => {

    if (barcodes.length === 0) {

        console.log('No barcode detected');

    } else {

        const barcode = barcodes[0];

        console.log(`Type: ${barcode.format}, Data: ${barcode.rawValue}`);

    }

})

.catch(err => console.error(err));

 

이 예제에서는 먼저 `querySelector` 메서드를 사용하여 이미지 요소를 선택합니다. 

그런 다음 새 `BarcodeDetector` 개체를 만들고 해당 감지 메서드를 사용하여 이미지 내의 바코드를 감지합니다. 

`detect` 메소드는 `Barcode` 객체의 배열로 해결되는 약속을 반환합니다. 

바코드가 감지되지 않으면 배열이 비어 있습니다.

 

​바코드가 감지되면 해당 형식과 원시 값을 콘솔에 기록하기만 하면 됩니다.

다음은 Barcode Detection API를 사용하여 비디오 스트림 내에서 바코드를 감지하고 디코딩하는 방법을 보여주는 또 다른 예입니다.

// Select the video element

const video = document.querySelector('video');

// Create a barcode detector

const barcodeDetector = new BarcodeDetector({

    formats: ['qr_code', 'ean_13', 'code_128']

});

// Start the video stream

navigator.mediaDevices.getUserMedia({

    video: true

}).then(stream => {

    video.srcObject = stream;

    video.play();

})

.catch(err => console.error(err));

 

// Listen for video frames

video.addEventListener('loadeddata', () => {

    // Capture a frame from the video stream

    const canvas = document.createElement('canvas');

    canvas.width = video.videoWidth;

    canvas.height = video.videoHeight;

 

    const ctx = canvas.getContext('2d');

    ctx.drawImage(video, 0, 0, canvas.width, canvas.height);

 

    // Detect barcodes within the frame

    barcodeDetector.detect(canvas)

    .then(barcodes => {

        if (barcodes.length === 0) {

            console.log('No barcode detected');

        } else {

            const barcode = barcodes[0];

            console.log(`Type: ${barcode.format}, Data: ${barcode.rawValue}`);

        }

    })

    .catch(err => console.error(err));

});

이 예제에서는 먼저 `querySelector` 메서드를 사용하여 비디오 요소를 선택합니다. 

그런 다음 감지할 바코드 형식을 지정하는 선택적 `formats` 매개 변수를 사용하여 새 `BarcodeDetector` 개체를 만듭니다.

`getUserMedia` 메서드를 사용하여 비디오 스트림을 시작하고 비디오가 재생되면 새 프레임을 사용할 수 있을 때 실행되는 `loadeddata` 이벤트를 수신합니다. 

이벤트 리스너 내에서 `canvas` 요소와 해당 `drawImage` 메서드를 사용하여 비디오 스트림에서 프레임을 캡처합니다. 

그런 다음 `BarcodeDetector` 개체의 `detect` 메서드를 사용하여 캡처된 프레임 내에서 바코드를 감지합니다. 

바코드가 감지되면 해당 형식과 원시 값을 콘솔에 기록합니다.

번호 제목 글쓴이 날짜 조회 수
246 [Gemini] ajax 와 fetch 의 차이 황제낙엽 2025.01.04 205
245 [검토 완료] 디바이스 카메라로 촬영한 사진을 서버에 업로드하기 샘플 황제낙엽 2024.11.21 310
244 브라우저에서 이미지를 편집(crop 등) 할 수 있는 오픈소스 Cropper.js 황제낙엽 2024.11.16 341
243 [ChatGPT] json data 의 정렬 [1] 황제낙엽 2024.07.23 204
242 DOMContentLoaded 이벤트와 window.onload 이벤트 황제낙엽 2024.07.15 231
241 fetch() 사용 예제들 황제낙엽 2024.07.09 263
240 [Copilot] Vanilla JavaScript에서 외부 스크립트 파일에 정의된 함수들을 로드 황제낙엽 2024.06.21 275
239 [Copilot] ES6 모듈(module) 문법 황제낙엽 2024.06.21 219
238 [Copilot] JSON 객체 내부 데이터를 순회하면서 조회하는 코드 황제낙엽 2024.06.02 213
237 [Copilot] JavaScript로 서버에 특정 값을 POST 방식으로 전달하고 응답을 기다리지 않고 바로 종료 황제낙엽 2024.05.31 393
236 json 데이터 내의 변수명에 prefix 로 type 표현하기 황제낙엽 2024.04.15 210
235 fetch() 함수 사용 예제 file 황제낙엽 2023.11.23 435
234 현재 document 의 host 와 port 를 얻는 방법 황제낙엽 2023.10.03 668
233 (Bard) FileReader 로 여러개의 파일을 read 하는 법 file 황제낙엽 2023.08.23 468
232 How to build a file upload service with vanilla JavaScript file 황제낙엽 2023.08.22 287
231 (Bard) JavaScript로 JSON 배열을 작성하는 방법 황제낙엽 2023.08.21 235
230 모바일 브라우저에서 file input element 를 이용하여 여러장의 이미지를 서버에 전송하려 할때 [1] 황제낙엽 2023.08.21 318
229 navigator.mediaDevices 황제낙엽 2023.08.21 294
» Barcode Detection API 황제낙엽 2023.08.06 513
227 정규식을 이용한 이메일 검증 스크립트 file 황제낙엽 2023.06.25 199