亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qrcode.js

?? qrcode-js-1.0.1
?? JS
?? 第 1 頁 / 共 2 頁
字號:
//---------------------------------------------------------------------
// QRCode for ActionScript
// version 1.0.1
// Copyright (C) Kazuhiko Arase all rights reserved.
//---------------------------------------------------------------------

//---------------------------------------------------------------------
// QR8bitByte
//---------------------------------------------------------------------

function QR8bitByte(data) {
	this.mode = QRMode.MODE_8BIT_BYTE;
	this.data = data;
}

QR8bitByte.prototype = {

	getLength : function(buffer) {
		return this.data.length;
	},
	
	write : function(buffer) {
		for (var i = 0; i < this.data.length; i++) {
			// not JIS ...
			buffer.put(this.data.charCodeAt(i), 8);
		}
	}
};

//---------------------------------------------------------------------
// QRCode
//---------------------------------------------------------------------

function QRCode(typeNumber, errorCorrectLevel) {
	this.typeNumber = typeNumber;
	this.errorCorrectLevel = errorCorrectLevel;
	this.modules = null;
	this.moduleCount = 0;
	this.dataCache = null;
	this.dataList = { length  : 0 };
}

QRCode.prototype = {
	
	addData : function(data) {
		var newData = new QR8bitByte(data);
		this.dataList[this.dataList.length++] = newData;
		this.dataCache = null;
	},
	
	isDark : function(row, col) {
		if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {
			throw new Error(row + "," + col);
		}
		return this.modules[row][col];
	},

	getModuleCount : function() {
		return this.moduleCount;
	},
	
	make : function() {
		this.makeImpl(false, this.getBestMaskPattern() );
	},
	
	makeImpl : function(test, maskPattern) {
		
		this.moduleCount = this.typeNumber * 4 + 17;
		this.modules = { length : this.moduleCount };
		
		for (var row = 0; row < this.moduleCount; row++) {
			
			this.modules[row] = { length : this.moduleCount };
			
			for (var col = 0; col < this.moduleCount; col++) {
				this.modules[row][col] = null;//(col + row) % 3;
			}
		}
	
		this.setupPositionProbePattern(0, 0);
		this.setupPositionProbePattern(this.moduleCount - 7, 0);
		this.setupPositionProbePattern(0, this.moduleCount - 7);
		this.setupPositionAdjustPattern();
		this.setupTimingPattern();
		this.setupTypeInfo(test, maskPattern);
		
		if (this.typeNumber >= 7) {
			this.setupTypeNumber(test);
		}
	
		if (this.dataCache == null) {
			this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);
		}
	
		this.mapData(this.dataCache, maskPattern);
	},

	setupPositionProbePattern : function(row, col)  {
		
		for (var r = -1; r <= 7; r++) {
			
			if (row + r <= -1 || this.moduleCount <= row + r) continue;
			
			for (var c = -1; c <= 7; c++) {
				
				if (col + c <= -1 || this.moduleCount <= col + c) continue;
				
				if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )
						|| (0 <= c && c <= 6 && (r == 0 || r == 6) )
						|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {
					this.modules[row + r][col + c] = true;
				} else {
					this.modules[row + r][col + c] = false;
				}
			}		
		}		
	},
	
	getBestMaskPattern : function() {
	
		var minLostPoint = 0;
		var pattern = 0;
	
		for (var i = 0; i < 8; i++) {
			
			this.makeImpl(true, i);
	
			var lostPoint = QRUtil.getLostPoint(this);
	
			if (i == 0 || minLostPoint >  lostPoint) {
				minLostPoint = lostPoint;
				pattern = i;
			}
		}
	
		return pattern;
	},
	
	createMovieClip : function(target_mc, instance_name, depth) {
	
		var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);
		var cs = 1;
	
		this.make();

		for (var row = 0; row < this.modules.length; row++) {
			
			var y = row * cs;
			
			for (var col = 0; col < this.modules[row].length; col++) {
	
				var x = col * cs;
				var dark = this.modules[row][col];
			
				if (dark) {
					qr_mc.beginFill(0, 100);
					qr_mc.moveTo(x, y);
					qr_mc.lineTo(x + cs, y);
					qr_mc.lineTo(x + cs, y + cs);
					qr_mc.lineTo(x, y + cs);
					qr_mc.endFill();
				}
			}
		}
		
		return qr_mc;
	},

	setupTimingPattern : function() {
		
		for (var r = 8; r < this.moduleCount - 8; r++) {
			if (this.modules[r][6] != null) {
				continue;
			}
			this.modules[r][6] = (r % 2 == 0);
		}
	
		for (var c = 8; c < this.moduleCount - 8; c++) {
			if (this.modules[6][c] != null) {
				continue;
			}
			this.modules[6][c] = (c % 2 == 0);
		}
	},
	
	setupPositionAdjustPattern : function() {
	
		var pos = QRUtil.getPatternPosition(this.typeNumber);
		
		for (var i = 0; i < pos.length; i++) {
		
			for (var j = 0; j < pos.length; j++) {
			
				var row = pos[i];
				var col = pos[j];
				
				if (this.modules[row][col] != null) {
					continue;
				}
				
				for (var r = -2; r <= 2; r++) {
				
					for (var c = -2; c <= 2; c++) {
					
						if (r == -2 || r == 2 || c == -2 || c == 2 
								|| (r == 0 && c == 0) ) {
							this.modules[row + r][col + c] = true;
						} else {
							this.modules[row + r][col + c] = false;
						}
					}
				}
			}
		}
	},
	
	setupTypeNumber : function(test) {
	
		var bits = QRUtil.getBCHTypeNumber(this.typeNumber);
	
		for (var i = 0; i < 18; i++) {
			var mod = (!test && ( (bits >> i) & 1) == 1);
			this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;
		}
	
		for (var i = 0; i < 18; i++) {
			var mod = (!test && ( (bits >> i) & 1) == 1);
			this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;
		}
	},
	
	setupTypeInfo : function(test, maskPattern) {
	
		var data = (this.errorCorrectLevel << 3) | maskPattern;
		var bits = QRUtil.getBCHTypeInfo(data);
	
		// vertical		
		for (var i = 0; i < 15; i++) {
	
			var mod = (!test && ( (bits >> i) & 1) == 1);
	
			if (i < 6) {
				this.modules[i][8] = mod;
			} else if (i < 8) {
				this.modules[i + 1][8] = mod;
			} else {
				this.modules[this.moduleCount - 15 + i][8] = mod;
			}
		}
	
		// horizontal
		for (var i = 0; i < 15; i++) {
	
			var mod = (!test && ( (bits >> i) & 1) == 1);
			
			if (i < 8) {
				this.modules[8][this.moduleCount - i - 1] = mod;
			} else if (i < 9) {
				this.modules[8][15 - i - 1 + 1] = mod;
			} else {
				this.modules[8][15 - i - 1] = mod;
			}
		}
	
		// fixed module
		this.modules[this.moduleCount - 8][8] = (!test);
	
	},
	
	mapData : function(data, maskPattern) {
		
		var inc = -1;
		var row = this.moduleCount - 1;
		var bitIndex = 7;
		var byteIndex = 0;
		
		for (var col = this.moduleCount - 1; col > 0; col -= 2) {
	
			if (col == 6) col--;
	
			while (true) {
	
				for (var c = 0; c < 2; c++) {
					
					if (this.modules[row][col - c] == null) {
						
						var dark = false;
	
						if (byteIndex < data.length) {
							dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);
						}
	
						var mask = QRUtil.getMask(maskPattern, row, col - c);
	
						if (mask) {
							dark = !dark;
						}
						
						this.modules[row][col - c] = dark;
						bitIndex--;
	
						if (bitIndex == -1) {
							byteIndex++;
							bitIndex = 7;
						}
					}
				}
								
				row += inc;
	
				if (row < 0 || this.moduleCount <= row) {
					row -= inc;
					inc = -inc;
					break;
				}
			}
		}
		
	}

};

QRCode.PAD0 = 0xEC;
QRCode.PAD1 = 0x11;

QRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {
	
	var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);
	
	var buffer = new QRBitBuffer();
	
	for (var i = 0; i < dataList.length; i++) {
		var data = dataList[i];
		buffer.put(data.mode, 4);
		buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );
		data.write(buffer);
	}

	// 嵟戝僨乕僞悢傪寁嶼
	var totalDataCount = 0;
	for (var i = 0; i < rsBlocks.length; i++) {
		totalDataCount += rsBlocks[i].dataCount;
	}

	if (buffer.getLengthInBits() > totalDataCount * 8) {
		throw new Error("code length overflow. ("
			+ buffer.getLengthInBits()
			+ ">"
			+  totalDataCount * 8
			+ ")");
	}

	// 廔抂僐乕僪
	if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {
		buffer.put(0, 4);
	}

	// padding
	while (buffer.getLengthInBits() % 8 != 0) {
		buffer.putBit(false);
	}

	// padding
	while (true) {
		
		if (buffer.getLengthInBits() >= totalDataCount * 8) {
			break;
		}
		buffer.put(QRCode.PAD0, 8);
		
		if (buffer.getLengthInBits() >= totalDataCount * 8) {
			break;
		}
		buffer.put(QRCode.PAD1, 8);
	}

	return QRCode.createBytes(buffer, rsBlocks);
}

QRCode.createBytes = function(buffer, rsBlocks) {

	var offset = 0;
	
	var maxDcCount = 0;
	var maxEcCount = 0;
	
	var dcdata = { length : rsBlocks.length };
	var ecdata = { length : rsBlocks.length };
	
	for (var r = 0; r < rsBlocks.length; r++) {

		var dcCount = rsBlocks[r].dataCount;
		var ecCount = rsBlocks[r].totalCount - dcCount;

		maxDcCount = Math.max(maxDcCount, dcCount);
		maxEcCount = Math.max(maxEcCount, ecCount);
		
		dcdata[r] = { length : dcCount };
		
		for (var i = 0; i < dcdata[r].length; i++) {
			dcdata[r][i] = 0xff & buffer.buffer[i + offset];
		}
		offset += dcCount;
		
		var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
		var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);

		var modPoly = rawPoly.mod(rsPoly);
		ecdata[r] = { length : rsPoly.getLength() - 1 };
		for (var i = 0; i < ecdata[r].length; i++) {
            var modIndex = i + modPoly.getLength() - ecdata[r].length;
			ecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;
		}

	}
	
	var totalCodeCount = 0;
	for (var i = 0; i < rsBlocks.length; i++) {
		totalCodeCount += rsBlocks[i].totalCount;
	}

	var data = { length : totalCodeCount };
	var index = 0;

	for (var i = 0; i < maxDcCount; i++) {
		for (var r = 0; r < rsBlocks.length; r++) {
			if (i < dcdata[r].length) {
				data[index++] = dcdata[r][i];
			}
		}
	}

	for (var i = 0; i < maxEcCount; i++) {
		for (var r = 0; r < rsBlocks.length; r++) {
			if (i < ecdata[r].length) {
				data[index++] = ecdata[r][i];
			}
		}
	}

	return data;

}

/* -------------------------------------------------------------------- *
 *
 * QRMode
 *
 * -------------------------------------------------------------------- */
 
var QRMode = {
	MODE_NUMBER :		1 << 0,
	MODE_ALPHA_NUM : 	1 << 1,
	MODE_8BIT_BYTE : 	1 << 2,
	MODE_KANJI :		1 << 3
};
//---------------------------------------------------------------------
//
//---------------------------------------------------------------------
 
var QRErrorCorrectLevel = {
	L : 1,
	M : 0,
	Q : 3,
	H : 2
};

//---------------------------------------------------------------------
//
//---------------------------------------------------------------------

var QRMaskPattern = {
	PATTERN000 : 0,
	PATTERN001 : 1,
	PATTERN010 : 2,
	PATTERN011 : 3,
	PATTERN100 : 4,
	PATTERN101 : 5,
	PATTERN110 : 6,
	PATTERN111 : 7
};

//---------------------------------------------------------------------
//
//---------------------------------------------------------------------
 
var QRUtil = {

    PATTERN_POSITION_TABLE : [
	    [],
	    [6, 18],
	    [6, 22],
	    [6, 26],
	    [6, 30],
	    [6, 34],
	    [6, 22, 38],
	    [6, 24, 42],
	    [6, 26, 46],
	    [6, 28, 50],
	    [6, 30, 54],		
	    [6, 32, 58],
	    [6, 34, 62],
	    [6, 26, 46, 66],
	    [6, 26, 48, 70],
	    [6, 26, 50, 74],
	    [6, 30, 54, 78],
	    [6, 30, 56, 82],
	    [6, 30, 58, 86],
	    [6, 34, 62, 90],
	    [6, 28, 50, 72, 94],
	    [6, 26, 50, 74, 98],
	    [6, 30, 54, 78, 102],
	    [6, 28, 54, 80, 106],
	    [6, 32, 58, 84, 110],

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国久久99热| 精品成人在线观看| 蜜桃一区二区三区在线观看| 国产精品久线在线观看| 欧美精品xxxxbbbb| 成人禁用看黄a在线| 日本欧美久久久久免费播放网| 中文字幕 久热精品 视频在线| 欧美日韩成人在线| 色欧美日韩亚洲| 国产麻豆视频一区二区| 日本不卡123| 亚洲一区二区三区自拍| 国产精品久久久久久久久动漫| 日韩一区二区三区观看| 欧美影视一区在线| 成人国产精品免费观看视频| 麻豆精品一二三| 日韩国产一区二| 亚洲国产成人av网| 亚洲黄色av一区| 亚洲天堂2016| 一区视频在线播放| 国产午夜一区二区三区| 精品少妇一区二区三区免费观看| 欧美日韩国产精品成人| 欧美三级韩国三级日本一级| 91久久国产综合久久| 91丨porny丨最新| www.亚洲精品| 成人av免费网站| 国产成人亚洲综合a∨婷婷 | 亚洲国产欧美在线| 亚洲色图视频网站| 一色桃子久久精品亚洲| 中文字幕一区二区三区不卡在线| 国产精品久久久久久亚洲毛片 | 亚洲高清不卡在线| 亚洲一二三四久久| 亚洲一区二区五区| 亚洲v中文字幕| 无码av免费一区二区三区试看| 亚洲高清久久久| 日韩电影在线观看一区| 肉丝袜脚交视频一区二区| 婷婷中文字幕一区三区| 日韩高清国产一区在线| 三级精品在线观看| 久久国产精品色婷婷| 国产在线看一区| 国产suv精品一区二区三区| 国产成人精品免费一区二区| 成人av免费在线播放| 91在线一区二区| 在线观看一区日韩| 69成人精品免费视频| 日韩欧美色综合| 欧美国产日韩在线观看| 亚洲精品日韩综合观看成人91| 亚洲综合视频网| 蜜桃在线一区二区三区| 丁香天五香天堂综合| av激情亚洲男人天堂| 在线视频一区二区免费| 欧美一区二区在线免费观看| www一区二区| 日韩一区欧美小说| 婷婷综合久久一区二区三区| 国产一区二区三区在线观看免费视频| 国产91对白在线观看九色| 一本大道av伊人久久综合| 欧美日韩极品在线观看一区| 日韩一区二区中文字幕| 国产精品亲子伦对白| 亚洲123区在线观看| 国产最新精品免费| 99精品欧美一区| 91精品国产综合久久香蕉的特点 | 国产精品欧美一区喷水| 亚洲成人一区二区在线观看| 国产一二精品视频| 欧洲国内综合视频| 精品1区2区在线观看| 亚洲视频一区二区在线观看| 日韩精品电影在线| 成人激情综合网站| 91精品国产全国免费观看| 国产区在线观看成人精品| 亚洲成人www| 国产成人啪午夜精品网站男同| 在线观看亚洲a| 国产三级精品在线| 石原莉奈在线亚洲二区| 成人午夜电影小说| 日韩一区二区免费电影| 亚洲视频一区在线观看| 国产在线精品免费| 欧美区一区二区三区| 欧美国产一区在线| 免费在线看一区| 欧美在线你懂的| 国产日韩欧美综合一区| 蜜桃精品视频在线观看| 欧美性猛交xxxx黑人交| 中文字幕av在线一区二区三区| 日韩经典一区二区| 日本精品免费观看高清观看| 久久精品视频在线看| 日韩成人免费电影| 91丨porny丨在线| 国产欧美一区二区精品性色超碰| 日韩精品1区2区3区| 欧美亚洲一区三区| 中文字幕在线视频一区| 国产美女视频91| 精品国产一区二区三区不卡| 日韩精品亚洲专区| 欧美日韩国产综合一区二区| 亚洲精选免费视频| 成人免费看片app下载| 久久久亚洲精品一区二区三区 | 91亚洲男人天堂| 国产精品天美传媒沈樵| 国产精品66部| 久久久久久久久一| 国模娜娜一区二区三区| 精品av久久707| 国精品**一区二区三区在线蜜桃| 精品三级av在线| 老司机精品视频导航| 欧美www视频| 国产在线精品一区二区三区不卡 | 亚洲一区二区中文在线| 欧美亚洲一区二区在线观看| 亚洲一区二三区| 欧美日韩综合不卡| 亚洲不卡av一区二区三区| 欧美喷水一区二区| 亚洲bt欧美bt精品777| 欧美美女激情18p| 青青青伊人色综合久久| 欧美v日韩v国产v| 国产一级精品在线| 国产精品乱码人人做人人爱| 成人黄色在线看| 亚洲欧美综合在线精品| 91麻豆.com| 亚洲一线二线三线久久久| 欧美日韩一卡二卡三卡| 日本三级亚洲精品| 欧美成人a∨高清免费观看| 国产久卡久卡久卡久卡视频精品| 久久久99精品免费观看| 懂色中文一区二区在线播放| 国产精品福利av| 色狠狠桃花综合| 日韩高清欧美激情| 久久精品欧美日韩| 99精品久久只有精品| 亚洲国产一区二区视频| 欧美一区二区三区视频在线观看| 国产麻豆视频精品| 亚洲免费电影在线| 欧美日韩精品电影| 国内精品免费在线观看| 最近中文字幕一区二区三区| 欧美天天综合网| 狠狠色丁香九九婷婷综合五月| 中文字幕精品在线不卡| 欧美影院午夜播放| 国产在线精品国自产拍免费| 亚洲婷婷国产精品电影人久久| 在线电影国产精品| 国产精品羞羞答答xxdd| 一区二区三区四区在线免费观看| 欧美一卡二卡在线| 97久久超碰精品国产| 男女激情视频一区| 日韩美女精品在线| 欧美一区二区二区| 91亚洲国产成人精品一区二区三 | 国产精品99久| 一区二区三区小说| 久久久无码精品亚洲日韩按摩| 色综合久久天天| 精品一二线国产| 亚洲免费电影在线| 久久九九久久九九| 欧美精三区欧美精三区| 成人污视频在线观看| 日本亚洲三级在线| 亚洲色图欧美偷拍| 欧美精品一区二区三区视频| 欧洲在线/亚洲| 粉嫩一区二区三区性色av| 亚洲高清免费观看高清完整版在线观看| 国产午夜一区二区三区| 日韩午夜在线观看视频| 欧美综合一区二区三区| 成人深夜福利app|