卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章11201本站已运行3223

C++实现header-only二维码生成器

特性
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
卓越飞翔博客
上一篇: C语言实现自动走迷宫 自动输出迷宫路径
下一篇: Python源码 远景论坛签到脚本

相关推荐

留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏