> 웹 프론트엔드 > JS 튜토리얼 > jquery.qrcode를 사용하여 색상 QR code_jquery를 생성하는 예

jquery.qrcode를 사용하여 색상 QR code_jquery를 생성하는 예

WBOY
풀어 주다: 2016-05-16 16:40:12
원래의
2006명이 탐색했습니다.

jquery.qrcode.js는 jquery 클래스 라이브러리에서 QR 코드를 그리기 위한 플러그인으로 QR 코드 그래픽 렌더링을 구현하는 데 사용되며 캔버스와 테이블의 두 가지 그리기 방법을 지원합니다. (jquery.qrcode.js가 표시 모드를 테이블로 설정하면 크롬 등 웹킷 코어 브라우저에서는 변형이 발생하므로 주의가 필요합니다.)

다음은 테스트 코드입니다(색상 컨트롤이 추가되었으며, 4개 블록의 색상 값을 설정할 수 있으며, 렌더링을 테이블로 지정해야 합니다.). 효과는 다음과 같습니다.

코드는 다음과 같습니다.

<html>
<head>
<title>JS生成二维码</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.qrcode.min.js"></script>
<style>
 #output{
  margin-left:300px; 
  margin-top:100px; 
 }
</style>
</head>
<body>
<div id="output"></div>
<script>
 window.onload = function () {
  var trs = $('#output').qrcode({
   width: 100,
   height: 100,
   render: "canvas", //设置渲染方式 table canvas
   text: utf16to8("javascript生成二维码"),
   background: "#ffffff", //背景颜色 
   foreground: "red" //前景颜色 
  }).find('tr'), trLen = Math.floor(trs.size() / 2), tdLen = Math.floor(trs.eq(0).find('td').size() / 2), tds, bgColor;
  var colors = [['#ff0000', '#0100e2'], ['#00ed01', '#9f4d95']];
  trs.each(function (j) {
   tds = $(this).find('td');
   tds.each(function (i) {
    bgColor = this.style.backgroundColor;
    if (bgColor == 'red') {
     this.style.backgroundColor = colors[j < trLen &#63; 0 : 1][i < tdLen &#63; 0 : 1];
    }
   });
  });
 }
 function utf16to8(str) {
  var out, i, len, c;
  out = "";
  len = str.length;
  for (i = 0; i < len; i++) {
   c = str.charCodeAt(i);
   if ((c >= 0x0001) && (c <= 0x007F)) {
    out += str.charAt(i);
   } else if (c > 0x07FF) {
    out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
    out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
    out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
   } else {
    out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
    out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
   }
  }
  return out;
 } 
</script>
 
</body>
</html>
로그인 후 복사

jquery-qrcode 라이브러리는 인코딩 변환을 위해 charCodeAt 메서드를 사용하며, 이 메서드는 기본적으로 유니코드 인코딩을 얻습니다. 일반적으로 디코더는 영어로 UTF-8, ISO-8859-1 등을 사용합니다. 중국어이며 일반적으로 유니코드는 길이가 2자리인 UTF-16으로 구현되는 반면 UTF-8 인코딩은 3자리이므로 QR 코드의 인코딩과 디코딩이 일치하지 않습니다.

해결 방법: QR 코드를 인코딩하기 전에 문자열을 UTF-8로 변환하세요. 구체적인 코드는 다음과 같습니다: utf16to8 함수

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿