Skip to content

7.0.0-RC17

Compare
Choose a tag to compare
@scanbot-ci scanbot-ci released this 20 Mar 09:32
· 45 commits to master since this release
  • 🎉 New:
    • Advanced configuration of Barcode Scanner. See SBSDKBarcodeScannerConfiguration.
    • Added support for barcode types Pharma Code, Pharma Code Two Track, PZN (Pharmazentralnummer).
    • Added support for the HIBC barcode document format.
    • New predefined subsets (1D, 2D, Postal, Pharma, etc.) of barcode formats. See SBSDKBarcodeFormat.
    • Introduced new property optimizeOverlays to SBSDKBarcodeScanner that generates more accurate barcode polygons for usage in tracking overlays.
    • Introduced new barcode engine modes nextGenLowPower, nextGenFarDistance, and nextGenLowPowerFarDistance. See SBSDKBarcodeScannerEngineMode.
    • Ability to configure the Barcode Scanner, its Classic UI and the Scan-and-Count Classic UI using the new setConfiguration(_:) method. See SBSDKBarcodeScanner.setConfiguration(_:),SBSDKBarcodeScannerViewController.setConfiguration(_:),SBSDKBarcodeScanAndCountViewController.setConfiguration(_:).
    • Introduced a new barcode item object to better represent barcode results. See SBSDKBarcodeItem.
    • Ability to get the extractedDocumentFormats from the barcode document parser. See SBSDKBarcodeDocumentParser.init(extractedDocumentFormats:),SBSDKBarcodeDocumentParser.extractedDocumentFormats.
    • Ability to scan barcodes from frames of type ofSBSDKBaseScannerFrame using the new methodSBSDKBarcodeScanner.scan(from: SBSDKBaseScannerFrame, useLiveMode:).
    • Ability to initialize the Barcode Scanner using the new initializerSBSDKBarcodeScanner.init(formats:, live:, extractedDocumentFormats:).
    • Introduced a boolean strictMode for certain barcode configurators. If this mode is disabled, it should allow for a higher detection rate in difficult scenarios, but with the possibility that false positive results may occur. Currently, we support strictMode for QR Code, Micro QR Code, rMQR Code, PDF417, MicroPDF417, and gs1Composite.
    • Introduced SBSDKBarcodeFormats and SBSDKBarcodeFormat that represents the barcode format sets and the individual barcode types respectively.
    • Ability to configure the Barcode Scanner using the common barcode configuration, see SBSDKBarcodeFormatCommonConfiguration.
    • Ability to know when a barcode was last detected using the new propertySBSDKBarcodeScannerAccumulatingResult.dateOfLastDetection.
    • Ability to return the barcode image in the result using the new property, set this property to True. See SBSDKUI2BarcodeScannerConfiguration.returnBarcodeImage.
    • Images returned in scanner results are now represented as image references. See SBSDKImageRef. They can be converted to UIImage objects using the method toUIImage().
    • Ability to process additional frames before they are passed to the main scanner using the new optional propertySBSDKBaseScannerViewController.additionalFrameProcessor.
  • 🚀 Improvements:
    • More robust QR code recognition, more tolerance for destroyed or missing timing patterns and alignment patterns and a better performance on artistic QR codes.
    • QR codes with non-square finder patterns and QR codes embedded in adversarial backgrounds (flow codes and more generally) can now be recognized.
    • Improved the false positive rate for ITF and Pharma Code barcodes.
    • Improved quiet zone checks for the barcode formats ITF, Code 11, MSI Plessey, IATA 2 of 5, Industrial 2 of 5, Code 25.
    • Improved barcode detection for various barcode types.
    • Improved the performance when scanning four state postal barcodes (i.e. Australia Post, Japanese Post, RM4SCC, Royal TNT Post, USPS Intelligent Mail).
    • Improved our Barcode Scanner with a significant speed-up in live mode on very large input resolutions.
  • 🐞 Bug fixes:
    • Fixed processing of still images of indexed color space model in barcode scanner.
    • Fixed a bug in the Barcode Scanner RTU-UI V2 where the flip camera button was not resetting the widest camera available if chosen.
    • Fixed a bug in SBSDKBarcodeScannerViewController that could lead to a crash when embedded within a UIViewControllerRepresentable.
    • Fixed a bug in the AR Barcode ScanAndCount where the scanner will be stuck if there is no barcode detected.
    • Fixed a UI bug in the Barcode Scanner RTU-UI V2 where the sheet button overlapped with the action bar.
    • Fixed the returned results for all types of SBSDKUpcEanExtensionBehavior.
    • Fixed the checksum of the Code 39 barcode format.
  • ⚠️ Breaking changes:
    • Removed property code in SBSDKBarcodeScannerAccumulatingResult, use the property item instead.
    • Removed properties acceptedBarcodeTypes, acceptedDocumentTypes, extensionFilter, additionalDetectionParameters, acceptedDocumentTypes, useLiveMode, regularExpressionPattern, engineMode in SBSDKBarcodeScannerViewController, please use the new copyCurrentConfiguration() and setConfiguration(_:) methods, see SBSDKBarcodeScannerConfiguration.
    • Removed initializers init(types:), init(types:liveMode:) and methods detectBarCodes(on: UIImage, in: CGRect), detectBarCodes(on: UIImage, orientation: AVCaptureVideoOrientation, in: CGRect), detectBarCodes(on: CMSampleBuffer, orientation: AVCaptureVideoOrientation, in: CGRect), detectBarCodes(on: CMSampleBuffer, orientation: AVCaptureVideoOrientation) in SBSDKBarcodeScanner, use the SBSDKBarcodeScannerConfiguration to initialize the scanner, the detect methods have been renamed to "scan".
    • Removed enum SBSDKBarcodeImageGenerationType and property barcodeImageGenerationType from SBSDKBarcodeScannerViewController and SBSDKUIBarcodeScannerBehaviorConfiguration.
    • Replaced class SBSDKPolygonEdge with SBSDKLineSegment.
    • Replaced enum SBSDKPolygonEdgeOrientation with SBSDKLineSegmentOrientation.
    • Renamed class SBSDKBarcodeType to SBSDKBarcodeFormat.
    • Renamed class SBSDKBarcodeDocumentRootType to SBSDKBarcodeDocumentFormat.
    • Renamed initializer init(barcodeResult:) to init(barcodeItem:) in SBSDKBarcodeScannerAccumulatingResult.
    • Renamed method barcodeScannerController(_:filterResults:) to barcodeScannerController(_:filterBarcodes:) in SBSDKBarcodeScannerViewControllerDelegate.
    • Renamed class SBSDKUI2BarcodeRecognizerConfiguration to SBSDKBarcodeScannerConfiguration.
    • Renamed class SBSDKUI2BarcodeScannerResult to SBSDKUI2BarcodeScannerUIResult.
    • Changed the initializers init?(parentViewController:parentView:) and init?(parentViewController:parentView:delegate:) to init?(parentViewController:parentView:configuration:) and init?(parentViewController:parentView:configuration:delegate:) in SBSDKBarcodeScannerViewController.
    • Changed all methods of SBSDKBarcodeTrackingOverlayControllerDelegate to use the new SBSDKBarcodeItem object type.
    • Changed the method make(withBarcode:) to use the new SBSDKBarcodeItem in SBSDKTrackedBarcodeInfoViewable.
    • Changed all methods of SBSDKBarcodeScanAndCountViewController to use the new SBSDKBarcodeItem.
    • Changed the initializers init?(parentViewController:parentView:) and init?(parentViewController:parentView:delegate:) to init?(parentViewController:parentView:configuration:) and init?(parentViewController:parentView:configuration:delegate:) in SBSDKBarcodeScanAndCountViewController.
    • Renamed SBSDKBarcodeFormat pzn to pzn8, also allow to decode the legacy format pzn7.
    • Renamed parameter name handler to completion in create and present functions of SBSDKUI2BarcodeScannerViewController.
    • Renamed async function presentAsync(on:configuration) to present(on:configuration) in SBSDKUI2BarcodeScannerViewController.
    • Replaced SBSDKUI2BarcodesExtensionFilter enum for RTU-UI v2 with SBSDKUpcEanExtensionBehavior enum from Barcode Scanner Classic component API.
    • Renamed property barcodesExtensionFilter in SBSDKUI2BarcodeScannerConfiguration to extensions.
    • Renamed class SBSDKBarcodesExtensionFilter to SBSDKUIBarcodesExtensionFilter.
  • 🚙 Under the hood:
    • The regex filters are applied for substrings instead of the entire output string.
    • Upgraded nlohmann::json to 3.11.3.
    • Upgraded xsimd to 13.0.
    • Upgraded xtl to 0.7.7.
    • Upgraded xtensor to 0.25.
    • Upgraded yaml-cpp to 0.8.