ClassLibraryWeiBao/QR二维码/Masking/Scoring/MatrixScoreCalculator.cs
(完整代码) 1KBusing System.Linq;
using Gma.QrCodeNet.Encoding.Positioning;
namespace Gma.QrCodeNet.Encoding.Masking.Scoring
{
internal static class MatrixScoreCalculator
{
internal static BitMatrix GetLowestPenaltyMatrix(this TriStateMatrix matrix, ErrorCorrectionLevel errorlevel)
{
PatternFactory patternFactory = new PatternFactory();
int score = int.MaxValue;
int tempScore;
TriStateMatrix result = new TriStateMatrix(matrix.Width);
TriStateMatrix triMatrix;
foreach(Pattern pattern in patternFactory.AllPatterns())
{
triMatrix = matrix.Apply(pattern, errorlevel);
tempScore = triMatrix.PenaltyScore();
if(tempScore < score)
{
score = tempScore;
result = triMatrix;
}
}
return result;
}
internal static int PenaltyScore(this BitMatrix matrix)
{
PenaltyFactory penaltyFactory = new PenaltyFactory();
return
penaltyFactory
.AllRules()
.Sum(penalty => penalty.PenaltyCalculate(matrix));
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。