Changelog
.NET - Version 6.1.0 (5 Dec 2024)
Android
- 🎉 New:
- Implemented new Document API to perform document creation and editing.
- Implemented new Ready-To-Use Document Scanner screen with extended scanning and reviewing capabilities.
- Added multiple overloads of
Render(...)
method inIPDFRenderer
interface. - Added multiple overloads of
RecognizeTextWithPdfFrom(...)
method inIOpticalCharacterRecognizer
interface. - Added multiple overloads of
WriteTIFF()
method inTIFFWriter
class. - Added new property
AddAdditionalQuietZone
toBarcodeScannerAdditionalConfig
. - Added a new predefined collection of barcodes,
BarcodeFormat.POSTAL
, which includes barcodes used in the postal industry. - Added support for 16KB page size (Android 15).
- Added option
MultipleScanningMode.AllowEmptySubmission
to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
- 🚀 Improvements:
- Improved
MagnifierView
. - AR overlay is enabled by default for
FindAndPickScanningMode
in Barcode Scanner RTU UI v2 screen. - For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- Improved false positive rate of UPC/EAN extensions in live mode.
- Improved
- 🐞 Bug fixes:
- Minor fixes for Barcode Scanner appearance in RTU UI v2 to make it consistent with its iOS counterpart.
- Fix point sorting in
ContourDetector
. - Fixed KANJI mode for QR codes.
- Fixed an issue with AR Overlay and barcode mapping in
BarcodeScannerActivity
RTU UI v2.0, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below. - Fixed image preprocessing for Document Quality Analyzer.
- Fixed fallback in the "Background Clean" filter when the ML model is unavailable.
- Fixed R8 obfuscation config for SDK logging classes.
- Fixed a bug in
ScanbotColor
where settingIsArgb
to true, resulted in a wrong color.
- ⚠️ Breaking changes:
- IMPORTANT Dropped support for the target
.net7.0-android
. - All classes from the old Page API were marked as deprecated and moved to
IO.Scanbot.Sdk.Persistence.Page.Legacy
package. - Renamed methods to
Render(...)
inIPDFRenderer
interface. - Changed
Render(...)
method signature inIPDFRenderer
interface. Now it takes an array of Uris instead of the List of Uris. - Renamed
WriteTIFFFromImages(...)
andWriteTIFFFromFiles(...)
methods toWriteTIFF(...)
in theTIFFWriter
class. - Renamed
IO.Scanbot.Sdk.Process.Model.DocumentQualityResult
toIO.Scanbot.Sdk.Process.Model.DocumentQuality
. - Renamed
IO.Scanbot.Sdk.Core.Contourdetector.DetectionStatus
toIO.Scanbot.Sdk.Core.Contourdetector.DocumentDetectionStatus
. - Changed the type of the
Rotation
field in thePage
class to theIO.Scanbot.Sdk.Core.ImageProcessor
enum. - Removed enum
BarcodeDensity
. - Removed property
CodeDensity
fromBarcodeAdditionalParameters
. - Removed enum values
Validate
andDecode
fromGs1Handling
and replaced them byDecodeStructure
,DecodeFull
,ValidateStructure
andValidateFull
. - Removed property
SharpnessAcceptanceFactor
fromGenericDocumentRecognizer
andGenericDocumentRecognizerConfiguration
for RTU UI screen. - Removed redundant fields
BarcodeImagePath
andBarcodePreviewFramePath
fromResult
class in Barcode Scanner RTU UI v2. - Changed
BarcodesRegexFilter
config behavior for Barcode Scanner RTU UI v2. Barcodes are accepted if the barcode data contains the part that matches the regex. - Replaced
Standard
andValidationStatus
fields withValidationErrors
in theGS1.Element
class.
- IMPORTANT Dropped support for the target
- 🚙 Under the hood:
- Updated the native SDK to Android Document SDK 6.1.2.
iOS
- 🎉 New:
- Added new RTU-UI V2 component, see
SBSDKUI2DocumentScannerController
. - Added document capture animation in
SBSDKDocumentScannerViewController
. - Added
CaptureAnimationConfiguration(...)
andPolygonConfigurationFor(...)
method toSBSDKDocumentScannerViewControllerDelegate
. - Added class
SBSDKDocumentAnimationConfiguration
to configure document capture animation. - Added classes
SBSDKScannedDocument
andSBSDKScannedPage
. - Added support for the new
SBSDKScannedDocument
class toSBSDKPDFRenderer
,SBSDKUIPDFRenderer
,SBSDKTIFFImageWriter
andSBSDKOpticalCharacterRecognizer
. - Added new constructor to
SBSDKUI2Color
that initializes fromSBSDKUI2Color(UIColor uiColor)
. - Added new property
IsAnimatingCapture
toSBSDKDocumentScannerViewController
. - Added new class
SBSDKDocumentScannerPolygonConfiguration
. - Added new properties
PolygonConfigurationAccepted
,PolygonConfigurationRejected
andAutoSnapProgressPolygonConfiguration
toSBSDKDocumentScannerViewController
. - Added new method
DidDetectPolygon(...)
toSBSDKImageEditingViewControllerDelegate
. - Added new property
AddAdditionalQuietZone
toSBSDKBarcodeAdditionalParameters
. - Added new property
PostalTypes
toSBSDKBarcodeType
. - Added a new property
HardwareButtonsEnabled
that enables snapping from the hardware volume buttons and the new hardware camera control button toSBSDKDocumentScannerViewController
andSBSDKBarcodeScanAndCountViewController
, available on iOS 17.2 and later. - Added support for German health insurance cards (front side) and European health insurance cards to
SBSDKGenericDocumentRecognizer
,SBSDKGenericDocumentRecognizerViewController
andSBSDKUIGenericDocumentViewController
. - Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
AustraliaPostCustomerFormat
,UseIATA2OF5Checksum
andUseCode11Checksum
toSBSDKBarcodeAdditionalParameters
andSBSDKUI2BarcodeRecognizerConfiguration
. - Added support for PDF metadata attributes when rendering PDF files: see new class
SBSDKPDFAttributes
and new propertypdfAttributes
inSBSDKPDFRendererOptions
. - Added new properties
resultAccumulatorConfiguration
toSBSDKGenericDocumentRecognizer
andSBSDKGenericDocumentRecognizerViewController
. See new classSBSDKGenericDocumentRecognizerAccumulationConfiguration
. - Added new zoom control slider controlled by the new camera control button on all view controllers, available on all the new iPhone 16 models.
- Added a new property
AllowEmptySubmission
toSBSDKUI2MultipleScanningMode
.
- Added new RTU-UI V2 component, see
- 🚀 Improvements:
- Improved sharpness of captured images in
SBSDKDocumentScannerViewController
by tweaking various timing related default values, such asInitialScanDelay
andAutoSnappingDelay
. - The AR-overlay in
SBSDKUI2FindAndPickScanningMode
is now visible by default. - For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- Improved detection of UPC and EAN extensions.
- The Generic Document Recognizer and its UI components now use the new Scanbot OCR engine under the hood. In order to scan for generic documents the additional OCR language data bundle is no longer required.
- Improved document detection on booklet documents.
- Improved performance of
SBSDKDocumentQualityAnalyzer
. - Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec.
- Improved GS1 string handling with new modes for decoding and validation. See
SBSDKGS1Handling
. - Added the ability to display the scanned barcodes image in the FindAndPick usecase of
SBSDKUI2BarcodeScannerViewController
by specifyingSBSDKUI2ExpectedBarcode.barcodeImageKey
for the expected barcodesImage
property.
- Improved sharpness of captured images in
- 🐞 Bug fixes:
- Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
- Fixed a bug in the Find & Pick use case of
SBSDKUI2BarcodeScannerViewController
that never showed the expected barcodes title, but always the barcode value. - Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
- Fixed a UI issue in
SBSDKFinderView
where the background color overlapped with the line color. - Fixed a UI issue in the RTU-UI v2 Find & Pick scanner in
button
sheet mode where the counter badge was not visible. - Fixed a crash when zooming with invalid
MinZoom
andMaxZoom
values. - Fixed a bug that did not mirror the front camera as expected.
- Fixed a bug in
SBSDKUI2SingleScanDialogModelProvider
where the default displayed texts were not correct. - Fixed KANJI mode for QR codes.
- Fixed a bug with wrong raw bytes returned for some 2D barcode types.
- Fixed potential broken generic document field validation status that could lead to a crash or undefined behavior.
- Fixed a UI issue on the RTU-UI v2 barcode sheet screen where the subtitle label was being vertically cut off.
- Fixed a UI issue on the RTU-UI v2 barcode confirmation sheet in the single use case where the loading indicator was not centered when the loading message was hidden.
- Fixed a bug in
Compression
ofSBSDKTIFFImageWriterParameters
where theSBSDKTIFFImageWriter
was not using the chosen compression value. - Fixed a bug in
SBSDKCheckRecognizer
where theAcceptedCheckTypes
were not being applied correctly. - Fixed a bug in
SBSDKUICheckRecognizerViewController
where theAcceptedCheckStandards
were not being applied correctly.
- ⚠️ Breaking Changes:
- IMPORTANT Dropped support for the target
.net7.0-ios
. - Deprecated
SBSDKUIDocumentScannerViewController
,SBSDKUIFinderDocumentScannerViewController
,SBSDKUICroppingViewController
and their related classes. - Removed enum
SBSDKBarcodeDensity
. - Removed property
CodeDensity
fromSBSDKBarcodeAdditionalParameters
. - Removed enum values
Validate
andDecode
fromSBSDKGS1Handling
and replaced them byDecodeStructure
,DecodeFull
,ValidateStructure
andValidateFull
. - Removed property
SharpnessAcceptanceFactor
fromSBSDKGenericDocumentRecognizer
,SBSDKGenericDocumentRecognizerViewController
andSBSDKUIGenericDocumentRecognizerBehaviorConfiguration
. - Removed property
isAccumulatingDocuments
fromSBSDKGenericDocumentRecognizer
andSBSDKGenericDocumentRecognizerViewController
. - Deprecated
SBSDKHealthInsuranceCardRecognizer
,SBSDKHealthInsuranceCardScannerViewController
andSBSDKUIHealthInsuranceCardScannerViewController
. - Removed class
SBSDKPDFMetadataEditor
. - Renamed the values of the enum
SBSDKDocumentDetectionStatus
. - Removed optional delegate methods
PolygonFillColorFor(...)
andPolygonFillColorFor(...)
fromSBSDKDocumentScannerViewControllerDelegate
class. - Removed properties
PolygonLineWidth
,PolygonLineColorAccepted
,PolygonLineColorRejected
,PolygonFillColorAccepted
,PolygonFillColorRejected
,PolygonAutoSnapProgressEnabled
,PolygonAutoSnapProgressColor
,PolygonAutoSnapProgressLineWidth
andPolygonCornerRadius
fromSBSDKDocumentScannerViewController
. - Renamed property
ResidencePermitFronBack
toResidencePermitFrontBack
inSBSDKUIDocumentType
. - Removed parameter
Encrypter
from allSBSDKPDFRenderer
methods and added it to the initializer of the class.
- IMPORTANT Dropped support for the target
- 🚙 Under the hood:
- Updated the native SDK to iOS Document SDK 6.1.1.
.NET - Version 5.1.1 (4 Oct 2024)
- 🐞 Bug fixes:
- Fixed reference issues when using our .NET package in more complex project structures.
.NET - Version 5.1.0 (15 Aug 2024)
Android
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. See Ready-to-Use UI for documentation and various use cases.
- Added support for new barcode format BarcodeFormat.MicroPdf417.
- Added support for Canadian and UAE Check standards.
- Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added new ParametricFilters in ImageProcessor API
- ScanbotBinarizationFilter
- CustomBinarizationFilter
- ColorDocumentFilter
- BrightnessFilter
- ContrastFilter
- GrayscaleFilter
- WhiteBlackPointFilter
- LegacyFilter
- Added support for German residence permits (2011 and 2019 formats) in GenericDocumentRecognizer.
- 🚀 Improvements:
- Optimized speed of the camera preview frames handling for all scanners.
- Changed the touch to focus square in ScanbotCameraXView to a circle.
- 🐞 Bug fixes:
- For BarcodeFormat.Pdf417, a single case to generate clusters was not covered, which led to a crash.
- Fixed issue with misaligned barcode polygons on some devices with horizontal orientation.
- Fixed SoundController crash on Android API <= 23.
- Fixed VinScannerConfiguration.setFinderTextHintColor(color) not being applied to the text hint.
- Fixed null pointer exception for PageFileStorage operations.
- ⚠️ Breaking Changes:
- BatchBarcodeScannerActivity class from RTU UI v1 is now marked as 'Deprecated'.
- Renamed Rss14 barcode format to Databar and RssExpanded to DatabarExpanded.
- Removed BarcodeFormat.Code25 from BarcodeFormat.CommonCodes list.
- Deleted deprecated IsLicenseActive and IsLicenseValid from ScanbotSDK. Please use LicenseInfo.IsValid instead.
- ZoomRange can be created with any input values but will be limited under the hood by internal MinZoom (x0.2) and MaxZoom (x100) values.
- Replaced the class BarCodeFormattedResult by GenericDocument class for barcode document parser output.
- BarcodeExtensionsFilter now accepts EAN and UPC barcodes with extensions only and all other formats without extensions.
- All HealthInsuranceCard prefixes in result model class names were replaced with Ehic (EhicRecognitionResult, EhicDetectionStatus, etc.).
- 🚙 Under the hood:
- Updated the native SDK to Android Document SDK 5.1.2.
- Updated 3rd-party libraries:
- libjpeg-turbo to 2.1.5.1
- libpng to 1.6.40
- libtiff to 4.6.0
- Added third-party library libzueci 1.0.0 and zlib 1.3.1.
- Extracted parts of ScanbotBarcodeScannerSDK API to the ILicensableSdk and IBarcodeScanningSdk interfaces.
- Migrated project to AGP 8.x.
- Added more rules for R8 shrinker to work adequately with AGP >= 8.
- Added Theme.AppCompat.NoActionBar theme as default for Barcode Scanner RTU UI v2 activity.
- Added Consumer Proguard rules for RTU UI v2 modules.
- Class SoundController was renamed to SoundControllerImpl and interface SoundController was extracted.
iOS
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. See Ready-to-Use UI for documentation and various use cases.
- Added support for new barcode type SBSDKBarcodeType.MicroPdf417.
- Added support for Canadian and UAE Check standards.
- Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added various properties to SBSDKBaseScannerViewController and SBSDKBarcodeScannerViewController:
- Added new property RegularExpressionPattern to SBSDKBarcodeScannerViewController and SBSDKBarcodeScanner to limit detection results.
- Added IsCameraFrozen property to SBSDKBaseScannerViewController.
- Added new function ResetAccumulation to SBSDKBarcodeScannerViewController.
- Added the ViewFinderStyle property to SBSDKBaseScannerViewController.
- Added new classes for all the barcode document formats. See the API documentation for more details.
- Added a new class SBSDKBarcodeDocumentConstants which has all the constants related to the barcode document format.
- Added a new class SBSDKBarcodeDocumentRootType which replaces the old SBSDKBarCodeScannerDocumentFormat.
- Added possibility to inject an image to simulate a video stream and a captured image to any scanner's camera session for UI testing. See ScanbotSDKGlobal.TestData, SBSDKTestData and SBSDKSimulatedCameraMockData.
- Added streaming encryption support to SBSDKStorageCrypting.
- Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK.
- Added new static property MaximumRecommendedImageSize to SBSDKDeviceInformation.
- Added new class-based image filters with customizable parameters:
- SBSDKParametricFilter (abstract base class)
- SBSDKScanbotBinarizationFilter
- SBSDKCustomBinarizationFilter
- SBSDKColorDocumentFilter
- SBSDKBrightnessFilter
- SBSDKContrastFilter
- SBSDKGrayscaleFilter
- SBSDKWhiteBlackPointFilter
- SBSDKLegacyFilter (encapsulates the deprecated SBSDKImageFilterType filters)
- Added support for German residence permit documents to SBSDKGenericDocumentRecognizer. See SBSDKGenericDocumentRootType.
- Added a new configuration class SBSDKHealthInsuranceCardRecognizerParameters to configure the live detection recognizer in SBSDKHealthInsuranceCardRecognizer.
- Added a new property liveDetectionParameters in SBSDKHealthInsuranceCardRecognizer.
- Added a new property recognizerParameters in SBSDKHealthInsuranceCardScannerViewController and SBSDKUIHealthInsuranceCardScannerViewController.
- Added property acceptedBrightnessThreshold to SBSDKDocumentScanner, SBSDKDocumentScannerViewController, SBSDKUIDocumentScannerBehaviourConfiguration and SBSDKUIFinderDocumentScannerBehaviorConfiguration.
- Added property averageBrightness to SBSDKDocumentDetectionMetrics.
- 🚀 Improvements:
- IMPORTANT: Changed the default rear cameras on all scanners to the triple or dual camera. On some devices with triple camera this results in a different view port (more zoomed in). Please make sure to adapt your zoom ranges and factors.
- Improved detection of UPC/EAN barcode extensions in live mode.
- Improved image quality and capture speed on most iOS devices slightly by capturing HEIF images.
- Added support of haptic feedback on capable devices.
- SBSDKPDFPagesExtractor functions now create the output directory if it doesn't exist yet.
- Added support for structured logging (OSLog) to the SDK (iOS 14+).
- The health insurance card recognizer now implements the new scanbot OCR engine. The recognition is faster and more accurate than before.
- 🐞 Bug fixes:
- Changed privacy manifest to comply with the latest Apple specs.
- Fixes a bug with the asynchronous functions of SBSDKPDFPagesExtractor which returned an empty array of image URLs.
- Fixed a bug with the generic textline recognizer not returning multiline results.
- ⚠️ Breaking Changes:
- IMPORTANT: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
- Deprecated SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController along with their related classes. Please consider switching to the new SBSDKUI2BarcodeScannerViewController.
- Renamed function CaptureJPEGStillImage to CaptureStillImageWithCompletionHandler in SBSDKBaseScannerViewController (and all subclasses) and SBSDKCameraSession.
- Replaced the class SBSDKBarcodeDocumentType with SBSDKBarcodeDocumentRootType.
- Removed the protocol SBSDKBarCodeScannerDocumentFormat and all of its children classes.
- Changed SetLoggingEnabled to property IsLoggingEnabled in SBSDKLog.
- Changed all SBSDKBarcodeType global constants to static properties of SBSDKBarcodeType.
- Moved the global constants SBSDKBarcodeMetadataEANUPCExtensionKey and SBSDKBarcodeMetadataIsGS1MessageKey to SBSDKBarcodeScannerResult as its static properties.
- Removed types
Ccittfax3
andCcittfax4
fromSBSDKTIFFImageWriterCompressionOptions
. UseCcitt_t4
andCcitt_t6
respectively.
- 🚙 Under the hood:
- Updated the native SDK to iOS Document SDK 5.1.3.
- Updated third-party libraries zlib to version 1.3.1, libtiff to 4.6.0, libjpeg-turbo to 2.1.5.1, libpng to 1.6.40.
- Added third-party library libzueci version 1.0.0.
- Refactored all public SDK code to Swift.
.NET - Version 4.2.0 (23 Apr 2024)
- 🎉 New:
- Both Android and iOS:
- Added new feature - Document Quality Analyzer. It analyzes the text quality (legibility) on images.
- Added new component - VIN (Vehicle identification number) scanner.
- New generation of Text Data Scanner component. The quality and speed of scanning has significantly improved.
- MRZ support for td1 long document standard.
- Added support for Kuwait ID cards in the MRZ scanner.
- Added support for Israelian checks to the check recognizer. Check
SBSDKCheckDocumentRootType
andIO.Scanbot.Check.Entity.RootDocumentType
enums. - Added support for more PDF page sizes. Check
SBSDKPDFRendererPageSize
andIO.Scanbot.Sdk.Model.PageSize
enums. - Added support for PDF orientations. Check
SBSDKPDFRendererPageOrientation
andIO.Scanbot.Pdf.Model.PageDirection
enums.
- Android:
- Added new supported barcode formats. Check
BarcodeFormat
enum for:UspsIntelligentMail
RoyalMail
JapanPost
RoyalTntPost
AustraliaPost
Gs1Composite
DatabarLimited
- The new PDF renderer for simple PDF and "sandwiched" PDF generation also allows flexibility to add custom PDF metadata.
- Added new supported barcode formats. Check
- iOS:
- Added new classes
SBSDKDocumentQualityAnalyzer
,SBSDKOpticalCharacterRecognizer
,SBSDKOpticalCharacterRecognizerConfiguration
andSBSDKTextLayoutRecognizer
. - Added
TrackingOverlayController
property toSBSDKBarcodeScannerViewController
. - Added property
ExtensionFilter
to all barcode scanning APIs and added propertyExtension
toSBSDKBarcodeScannerResult
. - Introduced new classes and properties to manage barcode tracking overlay.
- Added functions to
SBSDKDeviceInformation
to get the total, used and unused disk space on the device. - Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK which complies with the latest Apple specs.
- Added
SetupDefaultLicenseFailureHandlerWithCompletion
method to theScanbotSDKGlobal
class. - Added new method
WidestAvailableBackFacingCamera
toSBSDKCameraDevice
. - Added support for new barcode types. Check
SBSDKBarcodeType
enum for:USPSIntelligentMail
RoyalMail
JapanPost
RoyalTNTPost
AustraliaPost
GS1Composite
DatabarLimited
- Added new classes
- Both Android and iOS:
- 🚀 Improvements:
- Both Android and iOS:
- Added new Optical Character Recognition engine based on machine learning algorithms that is much faster and less error-prone. The new OCR engine currently supports all languages with Latin letters, there is no need to specify the languages for it. The legacy engine based on Tesseract can still be used.
- Added more control over how to handle GS1 messages in barcodes. Check Gs1 Handling property in the Barcode scanner configurations classes.
- Improved the document detector with better performance and less memory consumption.
- Android:
- Added
SetBarcodeFormatsFilter(barcodeFormat: List<BarcodeFormat>)
method inBatchBarcodeScannerConfiguration
class. - Optimized default and custom preview/picture size selection in the
ScanbotCameraXView
. - Optimized
SetForceMaxSnappingSize(enabled: bool)
behavior in theScanbotCameraXView
. - Improved pinch-to-zoom gesture in
ScanbotCameraXView
. - Added
SetLifecycleOwner(lifecycleOwner: ILifecycleOwner)
method forViewController
inDocumentScannerView
andBarcodeScannerView
to improve compatibility with Compose UI.
- Added
- Both Android and iOS:
- 🐞 Bug fixes:
- Android:
- Fixed some OOM crashes on low to midrange devices.
- Fixed
EnableCameraButtonTitle
andEnableCameraExplanationText
parameters on Batch and Barcode RTU UI screen configs. - Fixed crash in
GenericTextRecognizer
on ARM v7 devices. - Fixed behavior of
OcrResolutionLimit
configuration inGenericTextRecognizer
.
- iOS:
- Fixed a bug where the finder text hint was still showing when
ViewFinderEnabled
was disabled inSBSDKUIBarcodeScannerViewController
andSBSDKUIBarcodesBatchScannerViewController
. - Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
- Fixed an issue where the MRZ Scanner was not recognizing the new standard of Belgian ID Cards.
- Fixed the issue when the top and bottom toolbars' background color in
SBSDKUICroppingViewController
didn't update on dark mode change, when set toUIColor.SystemBackground
.
- Fixed a bug where the finder text hint was still showing when
- Android:
- ⚠️ Breaking changes:
- Android:
- If you are using
SetPictureSize(pictureSize: Size)
,SetCameraFrameSize(frameSize: Size)
orSetPreviewFrameSize(frameSize: Size)
, make sure input Size has the correct orientation (fits the view or display size). - All scanner components have been switched to zoom ratio (values 1x, 2x, etc.) instead of linear zoom (from 0 to 1). Methods renamed:
SetOpticalZoomRange()
->SetPhysicalZoomRange()
,SetOpticalZoomLevel()
->SetPhysicalZoomRatio()
inScanbotCameraXView
,DocumentScannerView
,BarcodeScanAndCountView
andBarcodeScannerView
.setPhysicalZoomRange()
andsetPhysicalZoomRatio()
accept possible zoom values from 0.5x up to 100x. NOTE: if the value sent to the camera is out of range for a specific device's capabilities, then the camera will try to set the max or min possible for that specific device. eg. Zoom 100x will only work on some high-end Samsung devices, whereas other devices will only have 12x-30x max. The same goes for minimum supported values, 0.5x is a wide-format camera module that does not exist on many Android devices. - Removed deprecated
BlurEstimator
and addedDocumentQualityAnalyzer
feature. Please use SDK functionCreateDocumentQualityAnalyzer(...)
instead ofCreateBlurEstimator(...)
. - Changed signature of
RenderDocumentFromImages()
andRenderDocumentFromPages()
methods -pageSize: PDFPageSize
was replaced with more detailedpdfConfig: PdfConfig
parameter. - Changed namespace from
IO.Scanbot.Sdk.Process.PDFPageSize
toIO.Scanbot.Pdf.Model.PageSize
. - Removed parameter
forceCpu: Boolean
fromImageProcessor
methods. - The
TextDataScannerConfiguration
now requires an instance ofTextDataScannerStep
for initialization. - Replaced
CameraModule.FrontMirrored
withCameraModule.Front
, which behaves as mirrored mode.
- If you are using
- iOS:
- Removed
SBSDKImageMetricsAnalyzer
,SBSDKImageChannelMetrics
andUIImage+SBSDKMetricsAnalysis
. - Refactored all OCR and PDF rendering classes to incorporate the new OCR engine and simplify the APIs.
- Removed
SBSDKOpticalTextRecognizer
andSBSDKTextOrientationRecognizer
. - Renamed
SBSDKPageOrientation
toSBSDKTextOrientation
. - Changed function signatures of methods in
SBSDKPDFRenderer
andSBSDKUIPDFRenderer
. - Added new values and removed unused values in
SBSDKPDFRendererPageSize
. - Removed barcode type
SBSDKBarcodeTypeUnknown
. - Removed property
AutoCancelTimeout
fromSBSDKUIMRZScannerBehaviorConfiguration
. - Removed
TextRecognitionLanguages
andTextFilterStrategy
fromSBSDKGenericTextLineRecognizerViewController
. - Removed
TextFilterStrategy
fromSBSDKUITextDataScannerStep
. - Removed
SupportedLanguages
fromSBSDKUITextDataScannerBehaviorConfiguration
. - Removed
SelectionOverlayTextFor
fromSBSDKUIBarcodeScannerViewControllerDelegate
. - Renamed
SelectionOverlayConfiguration
toTrackingOverlayConfiguration
inSBSDKUIBarcodeScannerConfiguration
andSBSDKUIBarcodesBatchScannerConfiguration
. - Renamed
SBSDKUIBarcodeSelectionOverlayConfiguration
toSBSDKUIBarcodeTrackingOverlayConfiguration
. - Replaced the properties
PolygonEnabled
,PolygonColor
,PolygonFillColor
andPolygonLineWidth
by the propertyPolygonStyle
inSBSDKBarcodeScanAndCountViewController
. - The class
SBSDKBlurrinessEstimator
has been removed and replaced by the far superiorSBSDKDocumentQualityAnalyzer
. - Changed default value of the finder aspect ratio in
SBSDKUIFinderDocumentScannerUIConfiguration
to DIN A4 portrait. - Removed prefix
Sbsdk_
from all the method names inUIImage_SBSDKFiltersAndWarping
interface. (eg:Sbsdk_imageWarpedByPolygon
toImageWarpedByPolygon
).
- Removed
- Android:
- 🚙 Under the hood:
- The native Scanbot Android SDK upgraded to v4.2.0.
- The native Scanbot iOS SDK upgraded to v4.2.2.
.NET - Version 2.3.1 (11 Oct 2023)
- 🐞 Bug fixes:
- Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
.NET - Version 2.3.0 (15 Sep 2023)
- 🎉 New:
- Both Android and iOS:.
- Added support for the Micro QR barcode type.
- Added view finder flag for barcode scanners (see more details below).
- Added support for Scan and Count of Barcodes (see more details below).
- Android:
- Added new function
setViewFinderEnabled
to:IO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfiguration
IO.Scanbot.Sdk.UI.View.Barcode.Batch.Configuration.BatchBarcodeScannerConfiguration
- Introduced a scanned barcode confirmation dialog in
IO.Scanbot.Sdk.UI.View.Barcode.BarcodeScannerActivity
RTU screen:- Added
SetConfirmationDialogConfiguration
toIO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfiguration
for modifying dialog UI.
- Added
- Added Scan and Count of Barcodes feature.
- Use
IO.Scanbot.Sdk.Barcode.UI.BarcodeScanAndCountView
to integrate it into your app.
- Use
- Added new function
- iOS:
- Added new property
ViewFinderEnabled
to:ScanbotSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
ScanbotSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
- Added new Classic UI component
Scanbot.iOS.SBSDKBarcodeScanAndCountViewController
which enables you to scan barcodes multiple times using the shutter button. - Added new properties
ConfirmationDialogTitle
andConfirmationDialogMessage
toScanbotSDK.iOS.SBSDKUIBarcodeScannerTextConfiguration
.
- Machine-readable-zone results have been refactored (please see ⚠️ Breaking changes):
- Added new properties to
ScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResult
:GenericDocument
TravelDocumentTypeVariantField
DateOfIssueField
- Added new value
CrewMemberCertificate
to theScanbot.iOS.SBSDKMachineReadableZoneRecognizerResultDocumentType
enum. - Added new values to the
Scanbot.iOS.SBSDKMachineReadableZoneRecognizerFieldName
enum:DateOfIssuance
TravelDocumentTypeVariant
- Added new properties to
- Added new function
FlipHorizontally
toScanbotSDK.iOS.SBSDKPolygon
. - Added new property
IsMirrored
toScanbotSDK.iOS.SBSDKCameraDevice
.
- Added new property
- Both Android and iOS:.
- 🚀 Improvements:
- Both Android and iOS:
- Improved accuracy and detection speed of several barcode types, such as QR_CODE, Code39, and Code93.
- Added support for inverted PDF-417 barcodes.
- iOS:
- Changed the default value for the
DocumentType
property inScanbot.iOS.SBSDKUIGenericDocumentRecognizerBehaviorConfiguration
- All documents are recognised by default now.
- Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in:
- All Classic UI components
- All RTU-UI components
- The
ScanbotSDK.iOS.SBSDKZoomRange
class
- Support for generic documents in the MRZ recognizer.
- Changed the default value for the
- Both Android and iOS:
- 🐞 Bug fixes:
- Android:
- Fixed a crash within the barcode detector.
- Fixed detection of several RSS_EXPANDED false-positives in live mode.
- Fixed a bug causing incorrect (mirrored) preview when
CameraModule.Front
is set up forIO.Scanbot.Sdk.UI.Camera.ScanbotCameraXView
. - Fixed the logic in
setAutoSnapProgressEnabled
andsetPolygonAutoSnapProgressEnabled
methods in:IO.Scanbot.Sdk.UI.View.Camera.Configuration.FinderDocumentScannerConfiguration
IO.Scanbot.Sdk.UI.View.Camera.Configuration.DocumentScannerConfiguration
- Fixed
TextDataScaner.textDataScannerStep
not applying from JSON configuration. - Ignored iOS-only parameter
shutterButtonIndicatorColor
when mapping:IO.Scanbot.Sdk.UI.View.Camera.Configuration.DocumentScannerConfiguration
IO.Scanbot.Sdk.UI.View.Camera.Configuration.FinderDocumentScannerConfiguration
- Corrected mapping of
userGuidanceStrings
JSON configuration forIO.Scanbot.Sdk.UI.View.Check.Configuration.CheckRecognizerConfiguration
.
- iOS:
- Fixed the detection of a few false positive RSS Expanded codes in live mode.
- Fixed an unexpected behavior of the barcode scanner when passing
ScanbotSDK.iOS.SBSDKBarcodeType.Unknown
as accepted barcode type. - Fixed a bug in all Classic UI and RTU-UI components where the
RecognitionEnabled
property might not have worked as intended. - Fixed a bug where
ocrResolutionLimit
was not being used in:ScanbotSDK.iOS.SBSDKUITextDataScannerBehaviorConfiguration
from JSON. - Fixed a bug where the polygon should be mirrored when using the front camera in:
ScanbotSDK.iOS.SBSDKDocumentScannerViewController
ScanbotSDK.iOS.SBSDKUIDocumentScannerViewController
- Fixed a bug where
automaticSelectionEnabled
was not working properly inScanbotSDK.iOS.SBSDKUIBarcodesBatchScannerViewController
.
- Android:
- ⚠️ Breaking changes:
- Android:
- API breaking changes in the MRZ scanner result interface:
- Replaced
IO.Scanbot.Mrzscanner.Model.MRZRecognitionResult
result model class withIO.Scanbot.Mrzscanner.Model.MRZGenericDocument
. - Removed the
Fields
list andMRZField
class, instead:- All detected fields are now stored in the
Document.Fields
list inIO.Scanbot.Mrzscanner.Model.MRZGenericDocument
.
- All detected fields are now stored in the
- The
travelDocType: MRZDocumentType
is now represented by thedocumentType: MRZDocumentType
field in theMRZGenericDocument
instance.
- Date fields in the
IO.Scanbot.Mrzscanner.Model.MRZGenericDocument
result model now contain an unformatted date string. - Replaced
IO.Scanbot.Mrzscanner.Model.MRZDocumentType
class withIO.Scanbot.Mrzscanner.Model.MRZGenericDocument.MRZDocumentType
.
- Replaced
- API breaking changes in the MRZ scanner result interface:
- iOS:
- Several delegate method names were renamed, such as:
ScanbotSDK.iOS.SBSDKCheckRecognizerViewControllerDelegate
:CheckRecognizerViewController
toDidRecognizeCheck
.CheckRecognizerViewController
toDidChangeState
.CheckRecognizerViewControllerShouldRecognize
toShouldRecognize
.
ScanbotSDK.iOS.SBSDKGenericDocumentRecognizerViewControllerDelegate
:DocumentRecognizerViewController
toDidRecognizeResult
.GenericDocumentRecognizerViewControllerShouldRecognize
toShouldRecognize
.
ScanbotSDK.iOS.SBSDKHealthInsuranceCardScannerViewControllerDelegate
:HealthInsuranceCardScannerViewController
toDidScanHealthInsuranceCard
.HealthInsuranceCardScannerViewControllerShouldRecognize
toShouldRecognize
.
ScanbotSDK.iOS.SBSDKUIHealthInsuranceCardScannerViewControllerDelegate
:HealthInsuranceCardDetectionViewController
toDidDetectCard
.HealthInsuranceCardDetectionViewControllerDidCancel
toDidCancel
.
ScanbotSDK.iOS.SBSDKImageEditingViewControllerDelegate
:ImageEditingViewController
toDidApplyChangesWithPolygon
.ImageEditingViewControllerDidCancelChanges
toDidCancelChanges
.ImageEditingViewControllerDidChangePolygon
toDidChangePolygon
.ImageEditingViewControllerCancelButtonItem
toCancelButtonItem
.ImageEditingViewControllerApplyButtonItem
toApplyButtonItem
.ImageEditingViewControllerToolbarStyle
toToolbarStyle
.ImageEditingViewControllerToolbarTintColor
toToolbarTintColor
.ImageEditingViewControllerToolbarItemTintColor
toToolbarItemTintColor
.ImageEditingViewControllerRotateClockwiseToolbarItem
toRotateClockwiseToolbarItem
.ImageEditingViewControllerRotateCounterClockwiseToolbarItem
toRotateCounterClockwiseToolbarItem
.
ScanbotSDK.iOS.SBSDKDocumentScannerViewControllerDelegate
:DocumentScannerViewController
toDidSnapDocumentImage
.DocumentScannerViewControllerShouldDetectDocument
toShouldDetectDocument
.DocumentScannerController
toDidSampleVideoFrame
.DocumentScannerViewControllerWillSnapImage
toWillSnapImage
.DocumentScannerViewControllerDidFailSnappingImage
toDidFailSnappingImage
.DocumentScannerViewController
toShouldAutoSnapImageWithForDetectionResult
.DocumentScannerViewControllerLineColor
toPolygonLineColorForStatus
.DocumentScannerViewController
toPolygonFillColorForStatus
.DocumentScannerViewController
toConfigureStatusDetectionLabel
.
ScanbotSDK.iOS.SBSDKUIGenericDocumentRecognizerViewControllerDelegate
:GenericDocumentRecognizerViewController
toDidFinishWithDocuments
.GenericDocumentRecognizerViewControllerDidCancel
toDidCancel
.
ScanbotSDK.iOS.SBSDKMedicalCertificateScannerViewControllerDelegate
:MedicalCertificateScannerViewController
toDidRecognizeMedicalCertificate
.MedicalCertificateScannerViewControllerShouldRecognize
toShouldRecognize
.MedicalCertificateScannerViewController
toDidChangeState
.
ScanbotSDK.iOS.SBSDKUIMedicalCertificateScannerViewControllerDelegate
:MedicalScannerViewController
toDidFinishWithResult
.MedicalScannerViewControllerDidCancel
toDidCancel
.
ScanbotSDK.iOS.SBSDKUIViewControllerDelegate
:ViewControllerShouldCancel
toShouldCancel
.ViewControllerShouldFinish
toShouldFinish
.
- Removed support for iOS 11.x and 12.x. The minimum deployment target to use ScanbotSDK in your app is iOS 13.0!
- Removed classes:
ScanbotSDK.iOS.SBSDKUIMachineCodesCollection
ScanbotSDK.iOS.SBSDKMultipleObjectScannerViewController
ScanbotSDK.iOS.SBSDKBusinessCardsImageProcessor
ScanbotSDK.iOS.SBSDKMultipleObjectsDetector
ScanbotSDK.iOS.SBSDKUIMultipleObjectScannerViewController
and its configuration classes.ScanbotSDK.iOS.SBSDKBaseCameraViewController
- Renamed the property
AcceptedMachineCodeTypes
toAcceptedBarcodeTypes
in:ScanbotSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
ScanbotSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
- Machine-readable-zone results have been refactored:
- Date fields in machine-readable-zones are returned unformatted now, e.g. in the format 'YYMMDD'. Previously we tried to convert them to the format 'DD.MM.YY'.
- Removed value
DiscreetIssuingStateOrOrganization
from theScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerFieldName
enum. - Removed value
TravelDocument
from theScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResultDocumentType
enum. - Removed property
DiscreetIssuingStateOrOrganizationField
fromScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResult
. - Removed property
CheckDigitsCount
fromScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResult
.
- Several delegate method names were renamed, such as:
- Android:
- 🚙 Under the hood:
- The native Scanbot Android SDK upgraded to v2.3.0.
- The native Scanbot iOS SDK upgraded to v2.3.1.
.NET - Version 2.2.0 (26 Jun 2023)
- 🎉 First release of the
ScanbotSDK.NET
NuGet package for Native iOS and Android APIs. - Provides Ready-To-Use UI Components - a set of easy to integrate Native wrappers of .NET based on iOS and Android native components for the most common tasks in Scanbot SDK:
- Document Scanner
- Cropping UI & ImageFilters
- Barcode & QR code Scanner
- MRZ Scanner
- Generic Document Recognizer
- EHIC Scanner
- Check Recognizer
- Provides additional SDK features based on image picked from the device photos application:
- Detect Barcodes on Image
- Detect Document on Image
- New unified Scanbot SDK API:
- Idiomatic asynchronous design
- MAUI-based unified API for Android & iOS
- Example App demonstrating the new functionality: scanbot-sdk-maui-example
What do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.