33inline void packModule(uint8_t* out, uint16_t stride, uint8_t
scale, uint8_t quiet,
36 const int px0 = (quiet + mx) *
scale;
37 const int py0 = (quiet + my) *
scale;
38 for (
int dy = 0; dy <
scale; dy++) {
39 uint8_t* row = out +
static_cast<size_t>(py0 + dy) * stride;
40 for (
int dx = 0; dx <
scale; dx++) {
41 const int px = px0 + dx;
42 row[px >> 3] |=
static_cast<uint8_t
>(0x80u >> (px & 7));
55int measure(
const char* data, uint8_t max_version, uint8_t ecc, uint16_t* out_modules);
74int render(
const char* data, uint8_t max_version, uint8_t ecc,
75 uint8_t
scale, uint8_t quiet_modules,
76 uint8_t* out,
size_t out_size,
77 uint16_t* out_stride_bytes, uint16_t* out_height_px);
void packModule(uint8_t *out, uint16_t stride, uint8_t scale, uint8_t quiet, int mx, int my)
Sets the packed pixels of one black QR module.
constexpr uint16_t QR_MAX_SIDE_PX
Hard cap on the rendered side length in pixels (incl. quiet zone, scaled).
int measure(const char *data, uint8_t max_version, uint8_t ecc, uint16_t *out_modules)
Measures the module count for data without rendering.