public final class Encoder
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static int[] |
ALPHANUMERIC_TABLE |
(package private) static java.nio.charset.Charset |
DEFAULT_BYTE_MODE_ENCODING |
Modifier | Constructor and Description |
---|---|
private |
Encoder() |
Modifier and Type | Method and Description |
---|---|
(package private) static void |
append8BitBytes(java.lang.String content,
BitArray bits,
java.nio.charset.Charset encoding) |
(package private) static void |
appendAlphanumericBytes(java.lang.CharSequence content,
BitArray bits) |
(package private) static void |
appendBytes(java.lang.String content,
Mode mode,
BitArray bits,
java.nio.charset.Charset encoding)
Append "bytes" in "mode" mode (encoding) into "bits".
|
private static void |
appendECI(CharacterSetECI eci,
BitArray bits) |
(package private) static void |
appendKanjiBytes(java.lang.String content,
BitArray bits) |
(package private) static void |
appendLengthInfo(int numLetters,
Version version,
Mode mode,
BitArray bits)
Append length info.
|
(package private) static void |
appendModeInfo(Mode mode,
BitArray bits)
Append mode info.
|
(package private) static void |
appendNumericBytes(java.lang.CharSequence content,
BitArray bits) |
private static int |
calculateBitsNeeded(Mode mode,
BitArray headerBits,
BitArray dataBits,
Version version) |
private static int |
calculateMaskPenalty(ByteMatrix matrix) |
private static int |
chooseMaskPattern(BitArray bits,
ErrorCorrectionLevel ecLevel,
Version version,
ByteMatrix matrix) |
static Mode |
chooseMode(java.lang.String content) |
private static Mode |
chooseMode(java.lang.String content,
java.nio.charset.Charset encoding)
Choose the best mode by examining the content.
|
private static Version |
chooseVersion(int numInputBits,
ErrorCorrectionLevel ecLevel) |
static QRCode |
encode(java.lang.String content,
ErrorCorrectionLevel ecLevel) |
static QRCode |
encode(java.lang.String content,
ErrorCorrectionLevel ecLevel,
java.util.Map<EncodeHintType,?> hints) |
(package private) static byte[] |
generateECBytes(byte[] dataBytes,
int numEcBytesInBlock) |
(package private) static int |
getAlphanumericCode(int code) |
(package private) static void |
getNumDataBytesAndNumECBytesForBlockID(int numTotalBytes,
int numDataBytes,
int numRSBlocks,
int blockID,
int[] numDataBytesInBlock,
int[] numECBytesInBlock)
Get number of data bytes and number of error correction bytes for block id "blockID".
|
(package private) static BitArray |
interleaveWithECBytes(BitArray bits,
int numTotalBytes,
int numDataBytes,
int numRSBlocks)
Interleave "bits" with corresponding error correction bytes.
|
(package private) static boolean |
isOnlyDoubleByteKanji(java.lang.String content) |
private static Version |
recommendVersion(ErrorCorrectionLevel ecLevel,
Mode mode,
BitArray headerBits,
BitArray dataBits)
Decides the smallest version of QR code that will contain all of the provided data.
|
(package private) static void |
terminateBits(int numDataBytes,
BitArray bits)
Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24).
|
(package private) static boolean |
willFit(int numInputBits,
Version version,
ErrorCorrectionLevel ecLevel) |
private static final int[] ALPHANUMERIC_TABLE
static final java.nio.charset.Charset DEFAULT_BYTE_MODE_ENCODING
private static int calculateMaskPenalty(ByteMatrix matrix)
public static QRCode encode(java.lang.String content, ErrorCorrectionLevel ecLevel) throws WriterException
content
- text to encodeecLevel
- error correction level to useQRCode
representing the encoded QR codeWriterException
- if encoding can't succeed, because of for example invalid content
or configurationpublic static QRCode encode(java.lang.String content, ErrorCorrectionLevel ecLevel, java.util.Map<EncodeHintType,?> hints) throws WriterException
WriterException
private static Version recommendVersion(ErrorCorrectionLevel ecLevel, Mode mode, BitArray headerBits, BitArray dataBits) throws WriterException
WriterException
- if the data cannot fit in any versionprivate static int calculateBitsNeeded(Mode mode, BitArray headerBits, BitArray dataBits, Version version)
static int getAlphanumericCode(int code)
public static Mode chooseMode(java.lang.String content)
private static Mode chooseMode(java.lang.String content, java.nio.charset.Charset encoding)
Mode.KANJI
.static boolean isOnlyDoubleByteKanji(java.lang.String content)
private static int chooseMaskPattern(BitArray bits, ErrorCorrectionLevel ecLevel, Version version, ByteMatrix matrix) throws WriterException
WriterException
private static Version chooseVersion(int numInputBits, ErrorCorrectionLevel ecLevel) throws WriterException
WriterException
static boolean willFit(int numInputBits, Version version, ErrorCorrectionLevel ecLevel)
static void terminateBits(int numDataBytes, BitArray bits) throws WriterException
WriterException
static void getNumDataBytesAndNumECBytesForBlockID(int numTotalBytes, int numDataBytes, int numRSBlocks, int blockID, int[] numDataBytesInBlock, int[] numECBytesInBlock) throws WriterException
WriterException
static BitArray interleaveWithECBytes(BitArray bits, int numTotalBytes, int numDataBytes, int numRSBlocks) throws WriterException
WriterException
static byte[] generateECBytes(byte[] dataBytes, int numEcBytesInBlock)
static void appendModeInfo(Mode mode, BitArray bits)
static void appendLengthInfo(int numLetters, Version version, Mode mode, BitArray bits) throws WriterException
WriterException
static void appendBytes(java.lang.String content, Mode mode, BitArray bits, java.nio.charset.Charset encoding) throws WriterException
WriterException
static void appendNumericBytes(java.lang.CharSequence content, BitArray bits)
static void appendAlphanumericBytes(java.lang.CharSequence content, BitArray bits) throws WriterException
WriterException
static void append8BitBytes(java.lang.String content, BitArray bits, java.nio.charset.Charset encoding)
static void appendKanjiBytes(java.lang.String content, BitArray bits) throws WriterException
WriterException
private static void appendECI(CharacterSetECI eci, BitArray bits)