iOS中的各种条形码阅读器免费SDK
我正在制作一个免费的条形码阅读器应用程序。 我正在寻找免费的SDK解码 数据矩阵、QR、Aztec、UPC、EAN条形码。 我现在已经按照实现了ZBar SDK。成功检测QR、UPC和EAN。 我测试了 但是这些都不能正确地检测到阿兹特克。 有了数据矩阵、UPC、EAN和QR,我发现Redlaser非常有效,但现在它不是免费的 现在,有没有免费的SDK可以检测所有四个条形码而不必付费,因为我想让我的应用程序在app store上免费 请建议iOS中的各种条形码阅读器免费SDK,ios,xcode,qr-code,barcode-scanner,aztec-barcode,Ios,Xcode,Qr Code,Barcode Scanner,Aztec Barcode,我正在制作一个免费的条形码阅读器应用程序。 我正在寻找免费的SDK解码 数据矩阵、QR、Aztec、UPC、EAN条形码。 我现在已经按照实现了ZBar SDK。成功检测QR、UPC和EAN。 我测试了 但是这些都不能正确地检测到阿兹特克。 有了数据矩阵、UPC、EAN和QR,我发现Redlaser非常有效,但现在它不是免费的 现在,有没有免费的SDK可以检测所有四个条形码而不必付费,因为我想让我的应用程序在app store上免费 请建议 另外,我希望扫描仪与最新的iOS兼容。通过一些工作
另外,我希望扫描仪与最新的iOS兼容。通过一些工作,您可以使用zint来实现这一点。看见 我在一个应用程序中使用了这个。很抱歉,我不允许共享比此更多的代码: 包括条形码、aztec、通用、字体、gs1、rs和bmp类 然后将下面的代码放在一个单独的类中
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;
}
您可以像这样设置一些符号来定制ZBar扫描仪
-(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];
}
现在,您可以使用AVFoundation扫描条形码,并支持您在问题中提到的所有条形码类型
快速教程:Zebra Crossing?抱歉,忘了提到它说的是Android/Java(但源代码中有iOS版本)我同意这是一个好代码,但它没有扫描Aztec cod,这就是我之前遇到的问题。对于其他所有的工作,它就像一个魅力,但在某些地方,我发现它很难阿兹特克。它说,它有阿兹特克支持的权利,我链接到的页面。是的。为了验证,我在第页测试了android和Aztec条形码。抱歉,但我不同意你的建议,ZBar在EAN、UPC和QR方面确实很好,但在Datamatrix和Eztec方面,我发现它不起作用。您的设置工作正常。Zbar中没有Eztec和Datamatrix的符号,因此这没有用处。我知道您不能共享代码,但如果您可以指导如何使用aztec代码,这将有所帮助。这些文件看起来很有帮助,但没有示例来了解如何使用。