Skip to content

Commit 55998be

Browse files
Merge pull request #41 from vflyson/patch-2
Autodetect the optimal typeNumber if < 1
2 parents c986449 + c4f61f5 commit 55998be

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

js/qrcode.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,33 @@ var qrcode = function() {
422422
};
423423

424424
_this.make = function() {
425+
if (_typeNumber < 1) {
426+
var typeNumber = 1;
427+
428+
for (; typeNumber < 40; typeNumber++) {
429+
var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel);
430+
var buffer = qrBitBuffer();
431+
432+
for (var i = 0; i < _dataList.length; i++) {
433+
var data = _dataList[i];
434+
buffer.put(data.getMode(), 4);
435+
buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );
436+
data.write(buffer);
437+
}
438+
439+
var totalDataCount = 0;
440+
for (var i = 0; i < rsBlocks.length; i++) {
441+
totalDataCount += rsBlocks[i].dataCount;
442+
}
443+
444+
if (buffer.getLengthInBits() <= totalDataCount * 8) {
445+
break;
446+
}
447+
}
448+
449+
_typeNumber = typeNumber;
450+
}
451+
425452
makeImpl(false, getBestMaskPattern() );
426453
};
427454

0 commit comments

Comments
 (0)