【问题标题】:Is there a barcode recognition framework for Cocoa (OS X)? [closed]Cocoa (OS X) 有条码识别框架吗? [关闭]
【发布时间】:2012-06-19 05:52:42
【问题描述】:

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

【问题讨论】:

    标签: objective-c cocoa barcode


    【解决方案1】:

    您必须为此使用第三方框架。

    例如,您可以使用:

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

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

    【讨论】:

    • ZBar 适用于 iOS。我在找可可。在 cocoa 中使用 ZXing 的任何示例应用程序。
    • 我希望为 os x 添加一个干净简单的示例应用程序,以及为 zxing Real Soon Now 添加新的干净项目文件。有两个示例应用程序(请参阅 objc 目录中的自述文件),但它们远非理想。
    • 还有一个适用于 OS X 的 Zbar Wrapper。在这里查看:github.com/srgtuszy/ZbarCocoa
    • 这些框架都不能真正与标准 5K iMac 的内置摄像头配合使用
    【解决方案2】:

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

    【讨论】:

    • 我认为这个库不完整,我尝试实现但有错误。有没有使用 Cocoa Barcodes 的示例应用程序。
    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • @camille 您如何准确回答一个广泛的问题?
    • 也许你只是不知道。显然,自发布以来,一些问题的标准发生了变化
    【解决方案3】:

    从 macOS 10.10 开始,您可以使用 CIFilter 来读取二维码,而无需任何第三方框架:

    这是官方docs 的链接,以及展示如何使用它的博客post

    【讨论】:

      【解决方案4】:

      在尝试创建和读取条形码时,您可以使用付费的 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

      这是一个小代码 sn-p 用于在图像中搜索条形码

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-25
        • 1970-01-01
        • 1970-01-01
        • 2010-12-07
        • 1970-01-01
        • 1970-01-01
        • 2021-07-23
        • 1970-01-01
        相关资源
        最近更新 更多