上一篇文章中,介绍了一些zbar的几本使用,由于zbar本书无法生成二维码,所以我们必须借助另一个库,libqrencode,这个库可以帮助你生成二维码,但是这个库都是一些。c文件,真正的使用需要额外的两个文件,其实如果实例非凡,不需要这两个文件也可以,贴上源码:QRCodeGenerator
#import "QRCodeGenerator.h"
#import <qrencode.h>
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
#define kCGImageAlphaPremultipliedLast (kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedLast)
#else
#define kCGImageAlphaPremultipliedLast kCGImageAlphaPremultipliedLast
#endif
enum {
qr_margin = 3
};
@implementation QRCodeGenerator
+ (void)drawQRCode:(QRcode *)code context:(CGContextRef)ctx size:(CGFloat)size {
unsigned char *data = 0;
int width;
data = code->data;
width = code->width;
float zoom = (double)size / (code->width + 2.0 * qr_margin);
CGRect rectDraw = CGRectMake(0, 0, zoom, zoom);
// draw
// CGContextSetFillColor(ctx, CGColorGetComponents([UIColor greenColor].CGColor));
int ran;
for(int i = 0; i < width; ++i) {
f

本文介绍了在ZBar无法生成二维码的情况下,如何利用libqrencode库进行二维码生成。libqrencode是一个C语言实现的库,通过qrimageforstring方法可方便地将字符串转化为二维码。文章还探讨了二维码的生成原理,以及如何实现彩色二维码,提示过多的颜色可能影响识别率。同时提到了二维码中的图片嵌入与缺省率的知识。
最低0.47元/天 解锁文章
4898





