示例#1
0
        internal BitMatrix GetOriginal(int matrixSize, Random randomizer, out ByteMatrix matrix)
        {
            matrix = new ByteMatrix(matrixSize, matrixSize);

            FillRandom(matrix, randomizer);
            return(matrix.ToBitMatrix());
        }
        private TestCaseData GenerateRandomTestCaseData(int matrixSize, int version)
        {
            ByteMatrix matrix = new ByteMatrix(matrixSize, matrixSize);

            EmbedAlignmentPattern(matrix, version);
            return(new TestCaseData(version, matrix.ToBitMatrix()));
        }
        private TestCaseData GenerateRandomTestCaseData(int version, MaskPatternType patternType)
        {
            int        matrixSize = VersionDetail.Width(version);
            ByteMatrix matrix     = new ByteMatrix(matrixSize, matrixSize);

            EmbedAlignmentPattern(matrix, version, patternType);
            return(new TestCaseData(version, patternType, matrix.ToBitMatrix()).SetName(string.Format(s_TestNameFormat, matrixSize, version)));
        }
示例#4
0
        private TestCaseData GenerateRandomTestCaseData(int version, int totalCodewords, Random randomizer)
        {
            int        matrixSize = VersionDetail.Width(version);
            ByteMatrix matrix     = new ByteMatrix(matrixSize, matrixSize);
            BitVector  codewords  = GenerateDataCodewords(totalCodewords, randomizer);

            EmbedAlignmentPattern(matrix, version, codewords);
            return(new TestCaseData(version, matrix.ToBitMatrix(), codewords).SetName(string.Format(s_TestNameFormat, matrixSize, version)));
        }
        public static BitMatrix Encode(string content, ErrorCorrectionLevel ecLevel)
        {
            QRCodeInternal qrInternal;
            BitVector      headerAndDataBits = DataEncodeUsingReferenceImplementation(content, ecLevel, out qrInternal);

            // Step 6: Interleave data bits with error correction code.
            BitVector finalBits = new BitVector();

            EncoderInternal.interleaveWithECBytes(headerAndDataBits, qrInternal.NumTotalBytes, qrInternal.NumDataBytes, qrInternal.NumRSBlocks, finalBits);

            // Step 7: Choose the mask pattern and set to "QRCodeInternal".
            ByteMatrix matrix      = new ByteMatrix(qrInternal.MatrixWidth, qrInternal.MatrixWidth);
            int        MaskPattern = EncoderInternal.chooseMaskPattern(finalBits, qrInternal.EcLevelInternal, qrInternal.Version, matrix);

            // Step 8.  Build the matrix and set it to "QRCodeInternal".
            MatrixUtil.buildMatrix(finalBits, qrInternal.EcLevelInternal, qrInternal.Version, MaskPattern, matrix);
            return(matrix.ToBitMatrix());
        }
示例#6
0
        public static BitMatrix Encode(string content, ErrorCorrectionLevel ecLevel)
        {
			QRCodeInternal qrInternal;
			BitVector headerAndDataBits = DataEncodeUsingReferenceImplementation(content, ecLevel, out qrInternal);
			
			// Step 6: Interleave data bits with error correction code.
			BitVector finalBits = new BitVector();
			EncoderInternal.interleaveWithECBytes(headerAndDataBits, qrInternal.NumTotalBytes, qrInternal.NumDataBytes, qrInternal.NumRSBlocks, finalBits);
			
			// Step 7: Choose the mask pattern and set to "QRCodeInternal".
			ByteMatrix matrix = new ByteMatrix(qrInternal.MatrixWidth, qrInternal.MatrixWidth);
			int MaskPattern = EncoderInternal.chooseMaskPattern(finalBits, qrInternal.EcLevelInternal, qrInternal.Version, matrix);
			
			// Step 8.  Build the matrix and set it to "QRCodeInternal".
			MatrixUtil.buildMatrix(finalBits, qrInternal.EcLevelInternal, qrInternal.Version, MaskPattern, matrix);
			return matrix.ToBitMatrix();
        }