Cocoa(OS X)是否有条形码识别框架?

时间:2012-06-16 11:11:50

标签: objective-c cocoa barcode

是否有用于在cocoa [OS X]上进行条形码识别(创建和扫描)的框架或其他示例代码?

5 个答案:

答案 0 :(得分:2)

你必须使用第三方框架。

例如,您可以使用:

  • ZXing。请注意,1D代码不稳定,因此您可能需要深入研究代码。
  • ZBar。似乎是一个非常有能力的图书馆。

简单的Google搜索或StackOverflow搜索也可以为您提供帮助。

答案 1 :(得分:1)

这里为mac和iphone创建二维条形码: Cocoa Barcodes

答案 2 :(得分:1)

尝试创建和读取条形码时,您可以使用付费的 macOS 框架。 LEADTOOLS SDK BarcodeReader 和 BarcodeWriter 类可以读取和写入条码,并且可以在 Objective-C 和 Swift 项目中使用。

https://www.leadtools.com/help/sdk/v21/dh/ba/barcodewriter.html

创建条码时,您需要提供必要的条码数据和写入时所需的选项。

        LTBarcodeData * const barcodeData = writeBarcodeView.barcodeData;

        _selectedSymbology = writeBarcodeView.selectedSymbology;

        _indexOfSelectedWriteOption = writeBarcodeView.indexOfSelectedWriteOption;

        

        LeadRect writeBounds = LeadRectMake(0, 0, image.width, image.height);

        

        if (!LeadRectIsZero(writeBounds) && !LeadRectEqualToRect(writeBounds, barcodeData.bounds))

            writeBounds = barcodeData.bounds;

        

        for (LTBarcodeWriteOptions *writeOption in _barcodeEngine.writer.allDefaultOptions) {

            writeOption.foreColor = [writeBarcodeView.foreColorWell.color colorUsingColorSpaceName:NSCalibratedRGBColorSpace].LTRasterColor;

            

            NSColor * const color = [writeBarcodeView.backColorWell.color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];

            writeOption.backColor = [NSColor colorWithSRGBRed:color.redComponent green:color.greenComponent blue:color.blueComponent alpha:1.0].LTRasterColor;

        }

        

        NSError *error = nil;

        if (![_barcodeEngine.writer calculateBarcodeDataBounds:writeBounds xResolution:image.xResolution yResolution:image.yResolution data:barcodeData options:nil error:&error]) {

            [self displayAlertWithMessage:@"Error while writing barcode" informativeText:error.localizedDescription];

            return;

        }

        

        if (![_barcodeEngine.writer writeBarcode:image data:barcodeData options:nil error:&error]) {

            [self displayAlertWithMessage:@"Error while writing barcode" informativeText:error.localizedDescription];

            return;

        }

        

        _imageViewer.rasterImage = image;

https://www.leadtools.com/help/sdk/v21/dh/ba/barcodereader.html

这是在图像中搜索条形码的一小段代码

NSArray<LTBarcodeData *> *barcodeData = [_barcodeEngine.reader readBarcodes:processingImage searchBounds:bounds maximumBarcodes:0 symbologies:nil error:&error];

有一个示例 macOS 应用程序,它使用当前托管在 Mac App Store 上的 LEADTOOLS SDK 框架。 https://apps.apple.com/us/app/leadtools-barcode/id602159087

答案 3 :(得分:0)

从macOS 10.10起,您可以使用CIFilter读取QRCodes而无需任何第三方框架:

这是指向官方docs和博客post的链接,其中显示了如何使用它。

答案 4 :(得分:-1)

你会在这里得到很多答案:

How can I scan barcodes on iOS?