mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
Use more accurate guess of bit length when calculating smallest available version
Fixes #66, Bug report by jthie
This commit is contained in:
parent
7b53fc3469
commit
30272dd955
@ -1589,10 +1589,7 @@ int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t len
|
||||
if (autosize == 1) {
|
||||
canShrink = 0;
|
||||
} else {
|
||||
if (tribus(autosize - 1, 1, 2, 3) != tribus(autosize, 1, 2, 3)) {
|
||||
// Length of binary needed to encode the data in the smaller symbol is different, recalculate
|
||||
est_binlen = getBinaryLength(autosize - 1, mode, jisdata, length, gs1, symbol->eci);
|
||||
}
|
||||
|
||||
switch (ecc_level) {
|
||||
case LEVEL_L:
|
||||
@ -1622,11 +1619,9 @@ int qr_code(struct zint_symbol *symbol, const unsigned char source[], size_t len
|
||||
autosize--;
|
||||
} else {
|
||||
// Data did not fit in the smaller symbol, revert to original size
|
||||
if (tribus(autosize - 1, 1, 2, 3) != tribus(autosize, 1, 2, 3)) {
|
||||
est_binlen = getBinaryLength(autosize, mode, jisdata, length, gs1, symbol->eci);
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (canShrink == 1);
|
||||
|
||||
version = autosize;
|
||||
|
Loading…
Reference in New Issue
Block a user