ClassLibraryWeiBao/QR二维码/Masking/Scoring/Penalty4.cs

(完整代码) 762B

namespace Gma.QrCodeNet.Encoding.Masking.Scoring
{
	/// <summary>
	/// ISO/IEC 18004:2000 Chapter 8.8.2 Page 52
	/// </summary>
	internal class Penalty4 : Penalty
	{
		/// <summary>
		/// Calculate penalty value for Fourth rule.
		/// Perform O(n) search for available x modules
		/// </summary>
		internal override int PenaltyCalculate(BitMatrix matrix)
		{
			int width = matrix.Width;
			int DarkBitCount = 0;
			
			for(int j = 0; j < width; j++)
			{
				for(int i = 0; i < width; i++)
				{
					if(matrix[i, j])
						DarkBitCount++;
				}
			}
			
			int MatrixCount = width * width;
			
			double ratio = (double)DarkBitCount / MatrixCount;
			
			return System.Math.Abs((int)(ratio*100 -50)) / 5 * 10;
			
		}
	}
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。