refactor/ThoughtWorks.QRCode/Codec/Reader/Pattern/AlignmentPattern.cs
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace ThoughtWorks.QRCode.Codec.Reader.Pattern
{
using System;
using ThoughtWorks.QRCode.Codec.Util;
using ThoughtWorks.QRCode.ExceptionHandler;
using ThoughtWorks.QRCode.Geom;
public class AlignmentPattern
{
internal const int RIGHT = 1;
internal const int BOTTOM = 2;
internal const int LEFT = 3;
internal const int TOP = 4;
internal static DebugCanvas canvas = QRCodeDecoder.Canvas;
internal Point[][] center;
internal int patternDistance;
internal AlignmentPattern(Point[][] center, int patternDistance)
{
this.center = center;
this.patternDistance = patternDistance;
}
public static AlignmentPattern findAlignmentPattern(bool[][] image, FinderPattern finderPattern)
{
Point[][] logicalCenters = getLogicalCenter(finderPattern);
int patternDistance = logicalCenters[1][0].X - logicalCenters[0][0].X;
return new AlignmentPattern(getCenter(image, finderPattern, logicalCenters), patternDistance);
}
public virtual Point[][] getCenter() =>
this.center;
internal static Point[][] getCenter(bool[][] image, FinderPattern finderPattern, Point[][] logicalCenters)
{
int modulePitch = finderPattern.getModuleSize();
Axis axis = new Axis(finderPattern.getAngle(), modulePitch);
int length = logicalCenters.Length;
Point[][] pointArray = new Point[length][];
for (int i = 0; i < length; i++)
{
pointArray[i] = new Point[length];
}
axis.Origin = finderPattern.getCenter(0);
pointArray[0][0] = axis.translate(3, 3);
canvas.drawCross(pointArray[0][0], Color_Fields.BLUE);
axis.Origin = finderPattern.getCenter(1);
pointArray[length - 1][0] = axis.translate(-3, 3);
canvas.drawCross(pointArray[length - 1][0], Color_Fields.BLUE);
axis.Origin = finderPattern.getCenter(2);
pointArray[0][length - 1] = axis.translate(3, -3);
canvas.drawCross(pointArray[0][length - 1], Color_Fields.BLUE);
Point point = pointArray[0][0];
for (int j = 0; j < length; j++)
{
for (int k = 0; k < length; k++)
{
if ((((k != 0) || (j != 0)) && ((k != 0) || (j != (length - 1)))) && ((k != (length - 1)) || (j != 0)))
{
Point point2 = null;
后面还有 148 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。