header-only
接口简单,易于使用
使用示例
// 添加数据 QR qr1("https://github.com/caozhanhao/opqr"); QR qr2(std::vector<int>{0, 1, 2, 3});//or other containers, e.g. std::list QR qr3; qr3.add_data({4, 5, 6, 7});// initializer_list // 指定参数 qr3.set_version(10); qr3.set_level(ECLevel::L); qr3.set_mode(Mode::NUM); qr3.set_mask(6); // 或 QR qr4(20, ECLevel::Q, Mode::ALNUM, 0); // 二维码标准要求二维码Quiet Zone,即在周围有白边,这里也可以关闭 qr3.disable_quiet_zone(); // 输出,这里提供两种方式调整图片尺寸 // 第一种直接在原二维码的基础上扩大(`enlarge`倍),不用stb缩放 // - paint(fmt, path/ostream, enlarge) -> (QR dimension * enlarge) * (QR dimension * enlarge) // 第二种方式通过stb缩放 // - paint(fmt, path/ostream, width, height) -> width * height qr1.generate().paint(pic::Format::JPG, "examples/example3.jpg", 512, 512); qr2.generate().paint(pic::Format::PNG, "examples/example1.png", 10); qr3.generate().paint(pic::Format::ANSI256, std::cout, 2); |
JPG
PNG
TGA
BMP
ANSI (可输出到终端, 即上例中qr3输出到std::cout)
依赖
stb (用来生成图片,也是header-only)
C++ 17