首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS中各种条形码阅读器免费软件开发工具包

iOS中各种条形码阅读器免费软件开发工具包
EN

Stack Overflow用户
提问于 2013-04-03 13:24:10
回答 3查看 7.3K关注 0票数 1

我正在制作一个免费的条形码阅读器应用程序。我正在寻找免费的SDK解码Datamatrix,QR,Aztec,UPC,EAN条形码。我已经按照现在实现了ZBar SDK。成功检测QR、UPC和EAN。我测试了This link

Zbar

ZXingOBjC

但这些都不能正确检测Aztec。有了Data Matrix,UPC,EAN和QR,我发现雷射非常有效,但现在它不是免费的。

现在,有没有免费的SDK可以检测所有四个条形码,而不需要付费,因为我想让我的应用程序在应用程序商店上免费。

请给出建议

附言:我希望扫描仪与最新的iOS兼容。

EN

回答 3

Stack Overflow用户

发布于 2013-04-03 13:59:59

通过一些工作,您可以使用zint来完成这项工作。参见https://github.com/samlown/zint/blob/master/backend/aztec.c我已经在一个应用程序中使用过这个。对不起,我不能分享更多的代码:包括条形码,阿兹特克,通用,字体,gs1,rs和bmp类,然后把下面的代码放在一个单独的类中

代码语言:javascript
复制
void dataProviderReleased (void *info, const void *data, size_t size) {
    struct barcode_symbol *my_symbol = info;
    Barcode_Delete(my_symbol);
}

+ (UIImage *)aztecBarcodeImageFromString:(NSString *)s scale:(CGFloat)scale {
    UIImage *image = nil;
    int errorCode = 0;
    struct barcode_symbol *my_symbol;

    if (s == nil) {
        return nil;
    }

    unsigned char *unicodeCharPtr = (unsigned char *)[s cStringUsingEncoding:NSUTF8StringEncoding];

    LogInfo(@"Creating barcode image for string: %@", s);

    my_symbol = Barcode_Create();

    my_symbol->output_options = 0;

    //my_symbol->output_options = BARCODE_BOX; //For a box around the bar code
    my_symbol->scale = scale;
    my_symbol->symbology = BARCODE_AZTEC;

    my_symbol->input_mode = UNICODE_MODE;

    errorCode = Barcode_Encode(my_symbol, unicodeCharPtr, 0);

    if (errorCode == 0) {
        errorCode = Barcode_Buffer(my_symbol, 0);

        if (errorCode == 0) {

            int numberOfComponents = 3;
            long imgSizePerRow = numberOfComponents * my_symbol->bitmap_width;
            long imgSize = imgSizePerRow * my_symbol->bitmap_height;

            CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

            //The dataProviderReleased method is responsible for deallocating the ZBarCode with the corresponding image data
            CGDataProviderRef providerRef = CGDataProviderCreateWithData(my_symbol, my_symbol->bitmap, imgSize, dataProviderReleased);

            CGImageRef imageRef = CGImageCreate(my_symbol->bitmap_width, my_symbol->bitmap_height, 8, numberOfComponents * 8, 
                                                imgSizePerRow, colorSpace, kCGBitmapByteOrderDefault | kCGImageAlphaNone, 
                                                providerRef, NULL, NO, kCGRenderingIntentDefault);

            image = [UIImage imageWithCGImage:imageRef];

            CGColorSpaceRelease(colorSpace);
            CGDataProviderRelease(providerRef);
            CGImageRelease(imageRef);
        } else {
            LogWarn(@"Could not buffer barcode, error=%d", errorCode);
            Barcode_Delete(my_symbol);
        }

    } else {
        LogWarn(@"Could not encode barcode, error=%d", errorCode);
        Barcode_Delete(my_symbol);
    }

    return image;
}
票数 1
EN

Stack Overflow用户

发布于 2013-04-03 15:12:21

您可以扫描自定义ZBar扫描程序,如设置更多符号系统,如下所示

代码语言:javascript
复制
-(void)scanProductBarCode
{
    ZBarReaderViewController *reader = [ZBarReaderViewController new];
    reader.readerDelegate = self;

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        reader.supportedOrientationsMask = ZBarOrientationMaskLandscape;
    else
        reader.supportedOrientationsMask = ZBarOrientationMaskPortrait;

    ZBarImageScanner *scanner = reader.scanner;
    [scanner setSymbology: ZBAR_UPCA config: ZBAR_CFG_ENABLE to: 1];
    [scanner setSymbology: ZBAR_CODE39 config: ZBAR_CFG_ADD_CHECK to: 0];
    [scanner setSymbology:ZBAR_QRCODE config:ZBAR_CFG_ADD_CHECK to:1];
    [scanner setSymbology:ZBAR_EAN13 config:ZBAR_CFG_ADD_CHECK to:1];

    [self presentModalViewController:reader animated:YES];
}
票数 1
EN

Stack Overflow用户

发布于 2017-03-17 19:39:31

现在,您可以使用AVFoundation扫描条形码,并且支持您在问题中提到的所有条形码类型。

快速教程:Building a Barcode and QR Code Reader in Swift 3 and Xcode 8

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15779477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档