iOS二维码识别/二维码生成

代码完善

2015年12月11日

QA测试发现,服务端生成的二维码,使用ZBar识别不出来,但将这张图片保存到相册,然后发送就可以识别出来。最初的想法是要服务端修改生成的二维码,但安卓能够识别出来,此路不通,那只有看ZBar的源码了。

- (id <NSFastEnumeration>) scanImage: (CGImageRef) image{    timer_start;    int nsyms = [self scanImage: image                      withScaling: 0];  //没有识别出来,判断CGImageRef对象的宽和高是否大于640,大于或等于的话进行缩放再进行扫描    if(!nsyms &&       CGImageGetWidth(image) >= 640 &&       CGImageGetHeight(image) >= 640)        // make style="color: #009999;">.5];    NSMutableArray *syms = nil;    if(nsyms) {        // quality/type filtering        int max_quality = MIN_QUALITY;        for(ZBarSymbol *sym in scanner.results) {            zbar_symbol_type_t type = sym.type;            int quality;            if(type == ZBAR_QRCODE)                quality = INT_MAX;            else                quality = sym.quality;            if(quality < max_quality) {                zlog(@"    type=%d quality=%d < %d\n",                     type, quality, max_quality);                continue;            }            if(max_quality < quality) {                max_quality = quality;                if(syms)                    [syms removeAllObjects];            }            zlog(@"    type=%d quality=%d\n", type, quality);            if(!syms)                syms = [NSMutableArray arrayWithCapacity: 1];            [syms addObject: sym];        }    }    zlog(@"read %d filtered symbols in %gs total\n",          (!syms) ? 0 : [syms count], timer_elapsed(t_start, timer_now()));    return(syms);}

在这里就产生了一个解决有些二维码图片识别不出来的解决思路:将传过来的