本文整理汇总了Java中com.google.zxing.common.BitArray.appendBitArray方法的典型用法代码示例。如果您正苦于以下问题:Java BitArray.appendBitArray方法的具体用法?Java BitArray.appendBitArray怎么用?Java BitArray.appendBitArray使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.google.zxing.common.BitArray
的用法示例。
在下文中一共展示了BitArray.appendBitArray方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: encode
import com.google.zxing.common.BitArray; //导入方法依赖的package包/类
public static QRCode encode(String content, ErrorCorrectionLevel ecLevel, Map<EncodeHintType,
?> hints) throws WriterException {
String encoding;
if (hints == null) {
encoding = null;
} else {
encoding = (String) hints.get(EncodeHintType.CHARACTER_SET);
}
if (encoding == null) {
encoding = DEFAULT_BYTE_MODE_ENCODING;
}
Mode mode = chooseMode(content, encoding);
BitArray headerBits = new BitArray();
if (mode == Mode.BYTE && !DEFAULT_BYTE_MODE_ENCODING.equals(encoding)) {
CharacterSetECI eci = CharacterSetECI.getCharacterSetECIByName(encoding);
if (eci != null) {
appendECI(eci, headerBits);
}
}
appendModeInfo(mode, headerBits);
BitArray dataBits = new BitArray();
appendBytes(content, mode, dataBits, encoding);
Version version = chooseVersion((headerBits.getSize() + mode.getCharacterCountBits
(chooseVersion((headerBits.getSize() + mode.getCharacterCountBits(Version
.getVersionForNumber(1))) + dataBits.getSize(), ecLevel))) + dataBits
.getSize(), ecLevel);
BitArray headerAndDataBits = new BitArray();
headerAndDataBits.appendBitArray(headerBits);
appendLengthInfo(mode == Mode.BYTE ? dataBits.getSizeInBytes() : content.length(),
version, mode, headerAndDataBits);
headerAndDataBits.appendBitArray(dataBits);
ECBlocks ecBlocks = version.getECBlocksForLevel(ecLevel);
int numDataBytes = version.getTotalCodewords() - ecBlocks.getTotalECCodewords();
terminateBits(numDataBytes, headerAndDataBits);
BitArray finalBits = interleaveWithECBytes(headerAndDataBits, version.getTotalCodewords()
, numDataBytes, ecBlocks.getNumBlocks());
QRCode qrCode = new QRCode();
qrCode.setECLevel(ecLevel);
qrCode.setMode(mode);
qrCode.setVersion(version);
int dimension = version.getDimensionForVersion();
ByteMatrix matrix = new ByteMatrix(dimension, dimension);
int maskPattern = chooseMaskPattern(finalBits, ecLevel, version, matrix);
qrCode.setMaskPattern(maskPattern);
MatrixUtil.buildMatrix(finalBits, ecLevel, version, maskPattern, matrix);
qrCode.setMatrix(matrix);
return qrCode;
}