ClassLibraryWeiBao/QR二维码/Masking/Scoring/Penalty3.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace Gma.QrCodeNet.Encoding.Masking.Scoring
{
/// <summary>
/// ISO/IEC 18004:2000 Chapter 8.8.2 Page 52
/// </summary>
internal class Penalty3 : Penalty
{
/// <summary>
/// Calculate penalty value for Third rule.
/// </summary>
internal override int PenaltyCalculate(BitMatrix matrix)
{
return PenaltyCalculation(matrix, true) + PenaltyCalculation(matrix, false);
}
private int PenaltyCalculation(BitMatrix matrix, bool isHorizontal)
{
int i = 0;
int j = 1;
int penalty = 0;
int width = matrix.Width;
bool bit;
while(i < width)
{
while(j < width - 5)
{
bit = isHorizontal ? matrix[j + 4, i]
: matrix[i, j + 4];
if(!bit)
{
bit = isHorizontal ? matrix[j, i]
: matrix[i, j];
if(!bit)
{
penalty += PatternCheck(matrix, i, j, isHorizontal);
j += 4;
}
else
j += 4;
}
else
{
for(int num = 4; num > 0; num--)
{
bit = bit = isHorizontal ? matrix[j + num, i]
: matrix[i, j + num];
if(!bit)
{
j += num;
break;
}
if(num == 1)
j += 5;
}
}
}
j = 0;
i++;
}
后面还有 56 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。