@@ -222,6 +222,8 @@ private static QRCodeData GenerateQrCode(BitArray bitArray, ECCLevel eccLevel, i
222
222
}
223
223
}
224
224
225
+ // Generate the generator polynomial using the number of ECC words.
226
+ var generatorPolynom = CalculateGeneratorPolynom ( eccInfo . ECCPerBlock ) ;
225
227
//Calculate error correction words
226
228
var codeWordWithECC = new List < CodewordBlock > ( eccInfo . BlocksInGroup1 + eccInfo . BlocksInGroup2 ) ;
227
229
AddCodeWordBlocks ( 1 , eccInfo . BlocksInGroup1 , eccInfo . CodewordsInGroup1 , bitArray , 0 , bitArray . Length ) ;
@@ -291,7 +293,7 @@ void AddCodeWordBlocks(int blockNum, int blocksInGroup, int codewordsInGroup, Bi
291
293
for ( var i = 0 ; i < blocksInGroup ; i ++ )
292
294
{
293
295
var bitBlockList = BinaryStringToBitBlockByteList ( bitArray2 , offset2 , groupLength ) ;
294
- var eccWordList = CalculateECCWords ( bitArray2 , offset2 , groupLength , eccInfo ) ;
296
+ var eccWordList = CalculateECCWords ( bitArray2 , offset2 , groupLength , eccInfo , generatorPolynom ) ;
295
297
codeWordWithECC . Add ( new CodewordBlock (
296
298
bitBlockList ,
297
299
eccWordList )
@@ -438,13 +440,11 @@ private static BitArray GetVersionString(int version)
438
440
/// This method applies polynomial division, using the message polynomial and a generator polynomial,
439
441
/// to compute the remainder which forms the ECC codewords.
440
442
/// </summary>
441
- private static byte [ ] CalculateECCWords ( BitArray bitArray , int offset , int count , ECCInfo eccInfo )
443
+ private static byte [ ] CalculateECCWords ( BitArray bitArray , int offset , int count , ECCInfo eccInfo , Polynom generatorPolynom )
442
444
{
443
445
var eccWords = eccInfo . ECCPerBlock ;
444
446
// Calculate the message polynomial from the bit array data.
445
447
var messagePolynom = CalculateMessagePolynom ( bitArray , offset , count ) ;
446
- // Generate the generator polynomial using the number of ECC words.
447
- var generatorPolynom = CalculateGeneratorPolynom ( eccWords ) ;
448
448
449
449
// Adjust the exponents in the message polynomial to account for ECC length.
450
450
for ( var i = 0 ; i < messagePolynom . PolyItems . Count ; i ++ )
0 commit comments