y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

JavascriptでQRコード生成(2)〜ちと重い

JavascriptでQRコードのjsファイルとサンプル(サイトのHTML)を頂戴して、ちょっとだけ改造。
部品として引用しやすいよう、CreateQR()関数にした。
<SCRIPT src="http://211.5.227.59/QRCode.js" type=text/javascript></SCRIPT>
<SCRIPT Language="Javascript">
CreateQR(4,'http://211.5.227.59/MovableType/mt4i.cgi')
</SCRIPT>
なんていう感じで書くと、このblogのインデックスページのようになる。
引数として、サイズとURLを渡すようにし、エラー訂正レベルはMで固定しているが、本来ならURLのバイト数をカウントして、サイズを自動的に調整したいところ。
とりあえず、サイズと格納できる情報(バイト数)とエラー訂正レベルの関係を表にまとめた

Ver セル構成 誤訂正レベル データビット数 英数字 バイナリ 漢字
1L 21×21 L 152 41 25 17
1M 21×21 M 128 34 20 14
1Q 21×21 Q 104 27 16 11
1H 21×21 H 72 17 10 7
2L 25×25 L 272 77 47 32
2M 25×25 M 224 63 38 26
2Q 25×25 Q 176 48 29 20
2H 25×25 H 128 34 20 14
3L 29×29 L 440 127 77 53
3M 29×29 M 352 101 61 42
3Q 29×29 Q 272 77 47 32
3H 29×29 H 208 58 35 24
4L 33×33 L 640 187 114 78
4M 33×33 M 512 149 90 62
4Q 33×33 Q 384 111 67 46
4H 33×33 H 288 82 50 34
5L 37×37 L 864 255 154 106
5M 37×37 M 688 202 122 84
5Q 37×37 Q 496 144 87 60
5H 37×37 H 368 106 64 44
6L 41×41 L 1088 322 195 134
6M 41×41 M 864 255 154 106
6Q 41×41 Q 608 178 108 74
6H 41×41 H 480 139 84 58
7L 45×45 L 1248 370 224 154
7M 45×45 M 992 293 178 122
7Q 45×45 Q 704 207 125 86
7H 45×45 H 528 154 93 64
8L 49×49 L 1552 461 279 192
8M 49×49 M 1232 365 221 152
8Q 49×49 Q 880 259 157 108
8H 49×49 H 688 202 122 84
9L 53×53 L 1856 552 335 230
9M 53×53 M 1456 432 262 180
9Q 53×53 Q 1056 312 189 130
9H 53×53 H 800 235 143 98
10L 57×57 L 2192 652 395 271
10M 57×57 M 1728 513 311 213
10Q 57×57 Q 1232 364 221 151
10H 57×57 H 976 288 174 119