⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qrcodeimagereader.java

📁 qrcode的java开源版本
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		axis.setModulePitch(modulePitch.left);
		axis.setOrigin(baseLineY.getP1());
		baseLineY.setP1(axis.translate(-3, -3));


		axis.setModulePitch(modulePitch.left);
		axis.setOrigin(baseLineY.getP2());
		baseLineY.setP2(axis.translate(3, -3));
		
		//baseLineX.translate(1,1);
		//baseLineY.translate(1,1);

		samplingGrid.initGrid(0, 0, sqrtNumAreaModules, sqrtNumAreaModules);

		for (int i = 0; i < sqrtNumAreaModules; i++) {
			
			gridLineX = new Line(baseLineX.getP1(), baseLineX.getP2());
			
			axis.setOrigin(gridLineX.getP1());
			axis.setModulePitch(modulePitch.top);
			gridLineX.setP1(axis.translate(i,0));

			axis.setOrigin(gridLineX.getP2());
			axis.setModulePitch(modulePitch.top);
			gridLineX.setP2(axis.translate(i,0));
			

			gridLineY = new Line(baseLineY.getP1(), baseLineY.getP2());
			axis.setOrigin(gridLineY.getP1());
			axis.setModulePitch(modulePitch.left);
			gridLineY.setP1(axis.translate(0,i));

			axis.setOrigin(gridLineY.getP2());
			axis.setModulePitch(modulePitch.left);
			gridLineY.setP2(axis.translate(0,i));


			samplingGrid.setXLine(0,0,i,gridLineX);
			samplingGrid.setYLine(0,0,i,gridLineY);
		}
		for (int ay = 0; ay < samplingGrid.getHeight(); ay++) {
			for (int ax = 0; ax < samplingGrid.getWidth();ax++) {
				canvas.drawLines(samplingGrid.getXLines(ax,ay), Color.BLUE);
				canvas.drawLines(samplingGrid.getYLines(ax,ay), Color.BLUE);
			}
		}
		return samplingGrid;
	}*/
	
	//sampllingGrid[areaX][areaY][direction(x=0,y=1)][EachLines]	
/*	SamplingGrid getSamplingGrid2_6(FinderPattern finderPattern, AlignmentPattern alignmentPattern) {

		Point centers[][] = alignmentPattern.getCenter();
		centers[0][0] = finderPattern.getCenter(FinderPattern.UL);
		centers[1][0] = finderPattern.getCenter(FinderPattern.UR);
		centers[0][1] = finderPattern.getCenter(FinderPattern.DL);
		int sqrtNumModules = finderPattern.getSqrtNumModules(); //一辺当たりのモジュール数を得る

		SamplingGrid samplingGrid = new SamplingGrid(1);
		Line baseLineX, baseLineY, gridLineX, gridLineY;
		
		int logicalDistance = alignmentPattern.getLogicalDistance();
		Axis axis = new Axis(finderPattern.getAngle(), finderPattern.getModuleSize());
	
		ModulePitch modulePitch = new ModulePitch(); //top left bottom rightの順に格納

		modulePitch.top = getAreaModulePitch(centers[0][0], centers[1][0], logicalDistance + 6);
		modulePitch.left = getAreaModulePitch(centers[0][0], centers[0][1], logicalDistance + 6);
		axis.setModulePitch(modulePitch.top);
		axis.setOrigin(centers[0][1]);
		modulePitch.bottom = getAreaModulePitch(axis.translate(0, -3), centers[1][1], logicalDistance + 3);
		axis.setModulePitch(modulePitch.left);
		axis.setOrigin(centers[1][0]);
		modulePitch.right = getAreaModulePitch(axis.translate(-3, 0), centers[1][1], logicalDistance + 3);

		//X軸に垂直の基線(一般に縦)
		baseLineX = new Line();
		baseLineY = new Line();
		
		axis.setOrigin(centers[0][0]);
		modulePitch.top = getAreaModulePitch(centers[0][0], centers[1][0], logicalDistance + 6);
		modulePitch.left = getAreaModulePitch(centers[0][0], centers[0][1], logicalDistance + 6);
		axis.setModulePitch(modulePitch.top);
		axis.setOrigin(centers[0][1]);
		modulePitch.bottom = getAreaModulePitch(axis.translate(0,-3), centers[1][1], logicalDistance + 3);
		axis.setModulePitch(modulePitch.left);
		axis.setOrigin(centers[1][0]);
		modulePitch.right = getAreaModulePitch(axis.translate(-3,0), centers[1][1], logicalDistance + 3);
		
		
		axis.setOrigin(centers[0][0]);
		axis.setModulePitch(modulePitch.top);
		baseLineX.setP1(axis.translate(-3,-3));

		axis.setModulePitch(modulePitch.left);
		baseLineY.setP1(axis.translate(-3,-3));
		
		axis.setOrigin(centers[0][1]);
		axis.setModulePitch(modulePitch.bottom);
		baseLineX.setP2(axis.translate(-3,3));
		
		axis.setOrigin(centers[1][0]);
		axis.setModulePitch(modulePitch.right);
		baseLineY.setP2(axis.translate(3,-3));
		

		baseLineX.translate(1,1);
		baseLineY.translate(1,1);
		
		samplingGrid.initGrid(0, 0, sqrtNumModules, sqrtNumModules);

		for (int i = 0; i < sqrtNumModules; i++) {
			gridLineX = new Line(baseLineX.getP1(), baseLineX.getP2());

			axis.setOrigin(gridLineX.getP1());
			axis.setModulePitch(modulePitch.top);
			gridLineX.setP1(axis.translate(i,0));

			axis.setOrigin(gridLineX.getP2());
			axis.setModulePitch(modulePitch.bottom);
			gridLineX.setP2(axis.translate(i,0));

			
			gridLineY = new Line(baseLineY.getP1(), baseLineY.getP2());
			
			axis.setOrigin(gridLineY.getP1());
			axis.setModulePitch(modulePitch.left);
			gridLineY.setP1(axis.translate(0,i));

			axis.setOrigin(gridLineY.getP2());
			axis.setModulePitch(modulePitch.right);
			gridLineY.setP2(axis.translate(0,i));
			

			samplingGrid.setXLine(0,0,i,gridLineX);
			samplingGrid.setYLine(0,0,i,gridLineY);
			
		}
		
		for (int ay = 0; ay < samplingGrid.getHeight(); ay++) {
			for (int ax = 0; ax < samplingGrid.getWidth();ax++) {
				canvas.drawLines(samplingGrid.getXLines(ax,ay), java.awt.Color.BLUE);
				canvas.drawLines(samplingGrid.getYLines(ax,ay), java.awt.Color.BLUE);
			}
		}
		return samplingGrid;
	}
	

	
	//for version 7-13
	SamplingGrid getSamplingGrid7_13(FinderPattern finderPattern, AlignmentPattern alignmentPattern) {

		Point centers[][] = alignmentPattern.getCenter();
		centers[0][0] = finderPattern.getCenter(FinderPattern.UL);
		centers[2][0] = finderPattern.getCenter(FinderPattern.UR);
		centers[0][2] = finderPattern.getCenter(FinderPattern.DL);
		int sqrtNumModules = finderPattern.getSqrtNumModules(); //一辺当たりのモジュール数を得る
		int sqrtNumArea = 2;
		int sqrtNumAreaModules = sqrtNumModules / sqrtNumArea;
		sqrtNumAreaModules++;
		SamplingGrid samplingGrid = new SamplingGrid(sqrtNumArea);
		Line baseLineX, baseLineY, gridLineX, gridLineY;

		int logicalDistance = alignmentPattern.getLogicalDistance();
		Axis axis = new Axis(finderPattern.getAngle(), finderPattern.getModuleSize());
		ModulePitch modulePitch;
		for (int ay = 0; ay < sqrtNumArea; ay++) {
			for (int ax = 0; ax < sqrtNumArea; ax++) {
				modulePitch = new ModulePitch(); //top left bottom rightの順に格納
				baseLineX = new Line();
				baseLineY = new Line();
				axis.setModulePitch(finderPattern.getModuleSize());
				if (ax == 0 && ay == 0) {
					axis.setOrigin(centers[0][0]);
					modulePitch.top = getAreaModulePitch(axis.translate(0,3), centers[1][0], logicalDistance + 3);
					modulePitch.left = getAreaModulePitch(axis.translate(3,0), centers[0][1], logicalDistance + 3);
					axis.setModulePitch(modulePitch.top);
					modulePitch.bottom = getAreaModulePitch(centers[0][1], centers[1][1], logicalDistance);
					axis.setModulePitch(modulePitch.left);
					modulePitch.right = getAreaModulePitch(centers[1][0], centers[1][1], logicalDistance);
					
					axis.setModulePitch(modulePitch.top);
					baseLineX.setP1(axis.translate(-3,-3));

					axis.setModulePitch(modulePitch.left);
					baseLineY.setP1(axis.translate(-3,-3));
					
					axis.setOrigin(centers[0][1]);
					axis.setModulePitch(modulePitch.bottom);
					baseLineX.setP2(axis.translate(-6,0));
					
					axis.setOrigin(centers[1][0]);
					axis.setModulePitch(modulePitch.right);
					baseLineY.setP2(axis.translate(0,-6));
				}
				else if (ax == 1 && ay == 0) {
					axis.setOrigin(centers[1][0]);
					modulePitch.top = getAreaModulePitch(axis.translate(0,-3), centers[2][0], logicalDistance + 3);
					modulePitch.left = getAreaModulePitch(centers[1][0], centers[1][1], logicalDistance);
					axis.setModulePitch(modulePitch.top);
					modulePitch.bottom = getAreaModulePitch(centers[1][1], centers[2][1], logicalDistance);
					axis.setModulePitch(modulePitch.left);
					axis.setOrigin(centers[2][0]);
					modulePitch.right = getAreaModulePitch(axis.translate(-3,0), centers[2][1], logicalDistance + 3);
					
					axis.setOrigin(centers[1][0]);
					axis.setModulePitch(modulePitch.left);
					baseLineX.setP1(axis.translate(0,-6));

					baseLineY.setP1(axis.translate(0,-6));
					
					baseLineX.setP2(centers[1][1]);
					
					axis.setOrigin(centers[2][0]);
					axis.setModulePitch(modulePitch.right);
					baseLineY.setP2(axis.translate(3,-3));
				}
				else if (ax == 0 && ay == 1) {
					modulePitch.top = getAreaModulePitch(centers[0][1], centers[1][1], logicalDistance);
					axis.setOrigin(centers[0][2]);
					modulePitch.left = getAreaModulePitch(centers[0][1], axis.translate(3,0), logicalDistance + 3);
					axis.setModulePitch(modulePitch.top);
					modulePitch.bottom = getAreaModulePitch(axis.translate(0,-3), centers[1][2], logicalDistance + 3);
					axis.setModulePitch(modulePitch.bottom);
					modulePitch.right = getAreaModulePitch(centers[1][1], centers[1][2], logicalDistance);
					
					axis.setOrigin(centers[0][1]);
					axis.setModulePitch(modulePitch.top);
					baseLineX.setP1(axis.translate(-6,0));

					baseLineY.setP1(axis.translate(-6,0));
					
					axis.setOrigin(centers[0][2]);
					axis.setModulePitch(modulePitch.bottom);
					baseLineX.setP2(axis.translate(-3, 3));
					
					baseLineY.setP2(centers[1][1]);					
				}
				else if (ax == 1 && ay == 1) {
					modulePitch.top = getAreaModulePitch(centers[1][1], centers[2][1], logicalDistance);
					modulePitch.left = getAreaModulePitch(centers[1][1], centers[1][2], logicalDistance);
					modulePitch.bottom = getAreaModulePitch(centers[1][2], centers[2][2], logicalDistance);
					modulePitch.right = getAreaModulePitch(centers[2][1], centers[2][2], logicalDistance);
					
					baseLineX.setP1(centers[1][1]);
					baseLineY.setP1(centers[1][1]);

					axis.setOrigin(centers[1][2]);
					axis.setModulePitch(modulePitch.left);
					baseLineX.setP2(axis.translate(0,6));

					axis.setOrigin(centers[2][1]);
					axis.setModulePitch(modulePitch.top);
					baseLineY.setP2(axis.translate(6,0));
				}
				
				samplingGrid.initGrid(ax,ay, sqrtNumAreaModules, sqrtNumAreaModules);
		
				for (int i = 0; i < sqrtNumAreaModules; i++) {
					gridLineX = new Line(baseLineX.getP1(), baseLineX.getP2());

					axis.setOrigin(gridLineX.getP1());
					axis.setModulePitch(modulePitch.top);
					gridLineX.setP1(axis.translate(i,0));

					axis.setOrigin(gridLineX.getP2());
					axis.setModulePitch(modulePitch.bottom);
					gridLineX.setP2(axis.translate(i,0));
	
					
					gridLineY = new Line(baseLineY.getP1(), baseLineY.getP2());
					
					axis.setOrigin(gridLineY.getP1());
					axis.setModulePitch(modulePitch.left);
					gridLineY.setP1(axis.translate(0,i));

					axis.setOrigin(gridLineY.getP2());
					axis.setModulePitch(modulePitch.right);
					gridLineY.setP2(axis.translate(0,i));
					
					samplingGrid.setXLine(ax,ay,i,gridLineX);
					samplingGrid.setYLine(ax,ay,i,gridLineY);
					
				}
			}
		}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -