ClassLibraryWeiBao/QR二维码/Positioning/Stencils/AlignmentPattern.cs
(开头部分) 7KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Linq;
using System.Collections.Generic;
namespace Gma.QrCodeNet.Encoding.Positioning.Stencils
{
internal class AlignmentPattern : PatternStencilBase
{
private static readonly bool[,] s_AlignmentPattern = new[,]
{
{ x, x, x, x, x },
{ x, o, o, o, x },
{ x, o, x, o, x },
{ x, o, o, o, x },
{ x, x, x, x, x }
};
public AlignmentPattern(int version)
: base(version)
{
}
public override bool[,] Stencil
{
get { return s_AlignmentPattern; }
}
public override void ApplyTo(TriStateMatrix matrix)
{
foreach (MatrixPoint coordinatePair in GetNonColidingCoordinatePairs(matrix))
{
this.CopyTo(matrix, coordinatePair, MatrixStatus.NoMask);
}
}
public IEnumerable<MatrixPoint> GetNonColidingCoordinatePairs(TriStateMatrix matrix)
{
return
GetAllCoordinatePairs()
.Where(point => matrix.MStatus(point.Offset(2, 2)) == MatrixStatus.None);
}
private IEnumerable<MatrixPoint> GetAllCoordinatePairs()
{
IEnumerable<byte> coordinates = GetPatternCoordinatesByVersion(Version);
foreach (byte centerX in coordinates)
{
foreach (byte centerY in coordinates)
{
MatrixPoint location = new MatrixPoint(centerX - 2, centerY - 2);
yield return location;
}
}
}
private static IEnumerable<byte> GetPatternCoordinatesByVersion(int version)
{
return s_AlignmentPatternCoordinatesByVersion[version];
}
后面还有 48 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。