[javascript] Cropper.js를 사용하여 이미지에 QR 코드 추가하기

이미지에 QR 코드를 추가하는 것은 웹 어플리케이션에서 유용한 기능입니다. Cropper.js는 이미지를 자르고 크롭하는 데 사용하는 JavaScript 라이브러리입니다. 이 라이브러리를 사용하여 이미지에 QR 코드를 추가하는 방법을 알아보겠습니다.

Cropper.js 설치

먼저 Cropper.js를 설치해야 합니다. 아래의 명령어를 사용하여 npm을 통해 패키지를 설치합니다.

npm install cropperjs

Cropper.js를 사용하여 이미지 자르기

먼저 이미지를 Cropper.js로 자른 후에 QR 코드를 추가할 것입니다. Cropper.js를 초기화하고 이미지를 로드하여 자르는 간단한 예제를 살펴보겠습니다.

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>Cropper.js Example</title>
   <link rel="stylesheet" href="cropper.css">
</head>
<body>
   <div>
      <img id="image" src="image.jpg" />
   </div>

   <script src="cropper.js"></script>
   <script>
      const image = document.getElementById('image');
      const cropper = new Cropper(image, {
         aspectRatio: 1,
         viewMode: 1,
      });
   </script>
</body>
</html>

위의 예제에서는 HTML 파일에 Cropper.js 스크립트와 스타일을 추가하고, <img> 요소를 Cropper 인스턴스와 연결합니다. aspectRatio는 자르는 영역의 가로 세로 비율을 설정하며, viewMode는 자르기 도구의 기본 동작을 설정합니다.

QR 코드 추가하기

이제 이미지를 자르는 것을 완료했으므로 QR 코드를 추가할 차례입니다. QR 코드를 생성하는 JavaScript 라이브러리를 사용하여 QR 코드를 이미지에 추가할 수 있습니다. 예를 들어 qrcode.js를 사용하여 QR 코드를 생성할 수 있습니다.

<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>Cropper.js with QR code</title>
   <link rel="stylesheet" href="cropper.css">
</head>
<body>
   <div>
      <img id="image" src="image.jpg" />
   </div>

   <script src="cropper.js"></script>
   <script src="qrcode.js"></script>
   <script>
      const image = document.getElementById('image');
      const cropper = new Cropper(image, {
         aspectRatio: 1,
         viewMode: 1,
         ready: function() {
            const canvas = cropper.getCroppedCanvas();
            const qrCode = new QRCode(canvas, {
               text: 'https://example.com',
               width: 128,
               height: 128,
            });

            const qrImage = qrCode.toDataURL("image/png");
            const qrImgElement = document.createElement("img");
            qrImgElement.src = qrImage;

            document.body.appendChild(qrImgElement);
         },
      });
   </script>
</body>
</html>

위의 예제에서는 ready 이벤트 핸들러에서 자른 이미지를 획득한 후, QR 코드를 생성하고 이미지 요소를 DOM에 추가합니다. QR 코드는 QRCode.toDataURL() 메서드를 사용하여 이미지 URL로 변환됩니다.

결론

Cropper.js를 사용하여 이미지에 QR 코드를 추가하는 방법을 알아봤습니다. Cropper.js를 통해 이미지를 자르고 QR 코드 생성 라이브러리를 사용하여 QR 코드를 추가할 수 있습니다. 이를 활용하면 웹 어플리케이션에서 다양한 기능을 구현할 수 있습니다.

참고 자료