95 int minVersion=1,
int maxVersion=40,
int mask=-1,
bool boostEcl=
true);
122 std::vector<std::vector<bool> > modules;
123 std::vector<std::vector<bool> > isFunction;
135 QrCode(
int ver,
const Ecc &ecl,
const std::vector<uint8_t> &dataCodewords,
int mask);
172 void drawFunctionPatterns();
177 void drawFormatBits(
int mask);
186 void drawFinderPattern(
int x,
int y);
190 void drawAlignmentPattern(
int x,
int y);
195 void setFunctionModule(
int x,
int y,
bool isBlack);
203 std::vector<uint8_t> appendErrorCorrection(
const std::vector<uint8_t> &data)
const;
208 void drawCodewords(
const std::vector<uint8_t> &data);
215 void applyMask(
int mask);
221 int handleConstructorMasking(
int mask);
226 int getPenaltyScore()
const;
236 static std::vector<int> getAlignmentPatternPositions(
int ver);
242 static int getNumRawDataModules(
int ver);
248 static int getNumDataCodewords(
int ver,
const Ecc &ecl);
255 static const int PENALTY_N1;
256 static const int PENALTY_N2;
257 static const int PENALTY_N3;
258 static const int PENALTY_N4;
260 static const int16_t NUM_ERROR_CORRECTION_CODEWORDS[4][41];
261 static const int8_t NUM_ERROR_CORRECTION_BLOCKS[4][41];
273 class ReedSolomonGenerator {
280 std::vector<uint8_t> coefficients;
290 ReedSolomonGenerator(
int degree);
300 std::vector<uint8_t> getRemainder(
const std::vector<uint8_t> &data)
const;
308 static uint8_t multiply(uint8_t x, uint8_t y);
static QrCode encodeSegments(const std::vector< QrSegment > &segs, const Ecc &ecl, int minVersion=1, int maxVersion=40, int mask=-1, bool boostEcl=true)