Skip to main content

Changelog | Android Document Scanner

Version 1.88.0 (13 Oct 2021)#

  • πŸŽ‰ New:
    • A new method forceClose() was added into our RTU UI components allowing to manually finish the RTU UI Screen (Activity) from the calling code
    • Now it is possible to access the current state of the flashlight using isFlashEnabled method in IScanbotCameraView
    • Ready to Use UI components now can use CameraX under the hood. Use ScanbotSDKInitializer.useCameraXRtuUi(true) to enable it
    • startPreview() and stopPreview() methods are available for ScanbotCameraXView as well
    • A new filter type PURE_GRAYSCALE is now available for the image processing. It is similar to GRAYSCALE, but without additional contrast and dynamic range optimizations
  • πŸš€ Improvements:
    • Improved flexibility, speed, and accuracy of the EHIC Scanner (European Health Insurance Cards)
    • ScanbotCameraXView now uses better preview quality by default
    • ScanbotCameraXView performance was optimized
  • 🐞 Bug fixes:
    • Fixed long initialization of ScanbotCameraXView on foldable devices
  • ⚠️ Breaking changes:
    • HealthInsuranceCardScanner
      • The ML blobs are now available as a separate library io.scanbot:sdk-ehic-assets:$latestSdkVersion. Please make sure to add it to your dependencies to be able to use HealthInsuranceCardScanner
      • recognizeX and detectAndRecognizeX methods were merged in recognizeX
      • setValidationType was removed. Now the country is detected directly from the card
      • Parameters width and height were removed from recognizeJPEG method as redundant
      • Method recognize was renamed to recognizeNv21
      • Enum value FAILED_VALIDATION was replaced with INCOMPLETE_VALIDATION in HealthInsuranceCardDetectionStatus
    • IdCardScanner
      • Removed deprecated IdCardScanner RTU screen (IdCardScannerActivity). Consider using GenericDocumentRecognizerActivity instead
      • Removed deprecated IdCardScannerConfiguration. Consider using GenericDocumentRecognizerConfiguration with GenericDocumentRecognizerActivity instead
  • πŸš™ Under the hood:
    • Refactored internal architecture of all RTU screens
    • Removed RxJava and RxAndroid libraries from RTU dependencies

Version 1.87.1 (15 Sep 2021)#

  • πŸŽ‰ New:
    • A new flag allowXnnpackAcceleration was added in ScanbotSDKInitializer allowing to control whether the XNN pack optimizations should be used (true by default)
  • 🐞 Bug fixes:
    • Fixed MSI_PLESSEY_CHECKSUM_ALGORITHMS, STRIP_CHECK_DIGITS and CAMERA_ZOOM parameters being ignored in BatchBarcodeScannerConfiguration
  • ⚠️ Breaking changes:
    • The corner_radius attribute of FinderOverlayView was renamed to sbsdk_corner_radius

Version 1.87.0 (3 Sep 2021)#

  • πŸŽ‰ New:
    • Added PdfPagesExtractor class that can extract pages from a PDF as Sdk's Page, or convert them to JPEGs and write to a specified Uri. Check scanbotSdk.createPdfPagesExtractor().
  • πŸš€ Improvements:
    • Improved recognition of the front side of ID cards by GenericDocumentRecognizer
    • Improved recognition of UPC/EAN barcodes due to ink spread
    • The resultPoints field of the BarcodeItem now contains correct information about the contours of the detected barcodes
  • 🐞 Bug fixes:
    • Fixed a bug with the EHIC recognizer that caused some UTF8 characters to be ignored upon recognition
    • Fixed a rotation issue in ScanbotCameraXView
    • Fixed incorrect metadata in PDF files generated from encrypted images
  • ⚠️ Breaking changes:
    • Update compile and target SDK of the library to 30
    • The resultPoints field of the BarcodeItem is no longer nullable
  • πŸš™ Under the hood:
    • Updated the version of Android PDF Writer library to 1.0.10
    • Bump CameraX version to stable 1.0.1 and CameraX View to 1.0.0-alpha28

Version 1.86.0 (6 Aug 2021)#

  • πŸŽ‰ New:
    • Page now contains PageImageSource allowing to check if the source image was captured automatically
    • PictureCallback now contains information if the image was captured automatically
    • Added a new method takePicture(acquireFocus: Boolean, isCapturedAutomatically: Boolean) in IScanbotCameraView which should be called with isCapturedAutomatically = true from a custom AutoSnappingController
    • Added method setAnchorPointColor(@ColorInt color: Int) allowing to change the color of draggable points of the cropping polygon in CroppingActivity component and EditPolygonView
    • Additional parameter stripCheckDigits: Boolean in BarcodeScannerAdditionalConfig for BarcodeDetector classical component
    • Additional parameter stripCheckDigits: Boolean in BarcodeScannerAdditionalConfiguration for RTU UI screens
  • πŸš€ Improvements:
    • Significant performance improvements for all scanners
    • Added support of sandwiched PDF (OCR) generation with enabled pages binarization and encryption
    • All-zeros MSI Plessey barcodes are ignored now
    • Additional Information field in SEPA barcode document type now parsed correctly to match the specification
    • Memory usage optimizations for DC scanner
  • ⚠️ Breaking changes:
    • The parameter imageOrientation in PictureCallback was replaced to CaptureInfo which contains the orientation of the image and if it was captured automatically
    • IMPORTANT! Added create prefix to names of all the methods in ScanbotSDK and ScanbotBarcodeScannerSDK, that return new instances of scanners, processors or storages. Methods without this prefix return Singleton objects.
    • IMPORTANT! Classical component BusinessCardsImageProcessor is no longer singleton! You should get your instance from SDK, configure it and use it as needed. Calling ScanbotSDK(this).createBusinessCardsImageProcessor() elsewhere will return a new instance of this component with default config
    • Reference and Hint fields in SEPA barcode document type were replaced by Purpose and Remittance to match the specification
  • πŸš™ Under the hood:

Version 1.85.1 (5 Jul 2021)#

  • πŸŽ‰ New:
    • Added a new callback in EditPolygonImageView allowing to handle the dragging state. See EditPolygonDragStateListener
  • 🐞 Bug fixes:
    • Fixed a crash after the license expiration in Classical components

Version 1.85.0 (1 Jul 2021)#

  • πŸŽ‰ New:
    • Brand new β€œNext Generation” machine-learning-based barcode scanning engine with improved reliability and much faster performance
    • Added new config parameter engineMode: EngineMode in BarcodeScannerConfig for ScanbotBarcodeDetector. By default ScanbotBarcodeDetector uses EngineMode.NextGen based on a new ML model
    • Added new RTU config method setEngineMode(engineMode: EngineMode) in BarcodeScannerConfiguration. By default - EngineMode.NextGen.
    • Added the possibility to customize the delay between successful frames for BatchBarcodeScannerActivity. Default changed from 1000 ms to 0 ms (no delay)
  • 🐞 Bug fixes:
    • Fixed incorrect toolbar color on NfcPassportScannerActivity
  • ⚠️ Breaking changes:
    • Removed disableMlDetector config parameter in BarcodeScannerConfig. Use EngineMode.LegacyFast instead.
    • Removed BarcodeDetectorType class and setDetectorType() method from Barcode RTU screens. Use setEngineMode(engineMode: EngineMode) instead.
    • Removed unused parameters width: Int and height: Int from detectFromJpeg(jpeg: ByteArray, frameOrientation: Int) method in ScanbotBarcodeDetector
  • πŸš™ Under the hood:

Version 1.84.0 (17 Jun 2021)#

  • πŸŽ‰ New:
    • Added a new supported barcode format BarcodeFormat.MSI_PLESSEY. By default MSI-Plessey is disabled, you must explicitly pass it as an accepted type
    • Additional parameter msiPlesseyChecksumAlgorithms: EnumSet<MSIPlesseyChecksumAlgorithm> in BarcodeScannerAdditionalConfig for BarcodeDetector classical component
    • Additional parameter msiPlesseyChecksumAlgorithms: EnumSet<MSIPlesseyChecksumAlgorithm> in BarcodeScannerAdditionalConfiguration for RTU UI screens
    • Added new parameter to the SdkLicenseInfo class licenseStatusMessage: String?
  • πŸš€ Improvements:
    • More clear default values for user guidance strings on RTU UI screens
  • 🐞 Bug fixes:
    • Fixed a problem with UPC-A barcodes being recognized as EAN13 barcodes
    • Moved BlurEstimator assets to Package 1
  • ⚠️ Breaking changes:
    • Disability Certificate Scanner:
      • The ML blobs are now available as a separated library io.scanbot:sdk-dc-assets:$latestSdkVersion. Please make sure to add it to your dependencies to be able to use DCScanner.
      • The obsolete method ScanbotSDKInitializer#prepareDcBlobs(prepareBlobs: Boolean) was removed from the SDK API.
      • Added a new type to supported Disability Certificate formats - DCFormType.Form_1b_Custom
    • IMPORTANT! Classical components TIFFWriter, MRZScanner, BlurEstimator, PayFormScanner, ChequeScanner, DCScanner, HealthInsuranceCardScanner and MultipleObjectsDetector are no longer singletons! You should get your instance from SDK, configure it and use it as needed. Calling ScanbotSDK(this).<component>() elsewhere will return a new instance of this component with default config
    • Refactor RTU's NfcPassportScanningResult entity: make corresponding fields of Int type.
    • Added new setValidationType(validationType: HealthInsuranceCardValidationType) method in HealthInsuranceCardScanner
    • Changed signature of the handleLicenceStatusError method in IScanbotSDKLicenseErrorHandler. Added additional parameter errorMessage : String
    • Marked as deprecated reinitWithValidationType(validationType: HealthInsuranceCardValidationType) method in HealthInsuranceCardScanner

Version 1.83.2 (20 May 2021)#

  • πŸš€ Improvements:
    • Optimized memory consumption and performance of GenericDocumentRecognizer and IdCardScanner

Version 1.83.1 (18 May 2021)#

  • πŸš€ Improvements:
    • Improve the false positive rate for GenericDocumentRecognizer
  • 🐞 Bug fixes:
    • Fixed TiffWriter on 32-bit devices
  • πŸš™ Under the hood:
    • Bump Kotlin version to 1.4.20
    • Bump CameraX version to stable 1.0.0

Version 1.83.0 (05 May 2021)#

  • πŸŽ‰ New:
    • Introduced Generic Document Recognizer which provides the ability to scan various types of documents including German ID Cards, Passports and Driver's licenses. See [[Using Generic Document Recognizer]]
  • πŸš€ Improvements:
    • IdCardScanner is now deprecated. Consider using GenericDocumentRecognizer instead
  • 🐞 Bug fixes:
  • ⚠️ Breaking changes:
    • IMPORTANT! Classical component BlurEstimator is no longer a singleton! You should get your instance from SDK, configure it and use it as needed. Calling ScanbotSDK(this).blurEstimator() elsewhere will return a new instance of this component with default config
    • IMPORTANT! Classical component TextOrientationScanner is no longer a singleton! You should get your instance from SDK, configure it and use it as needed. Calling ScanbotSDK(this).textOrientationScanner() elsewhere will return a new instance of this component with default config
    • IMPORTANT! Classical component IdCardScanner is no longer a singleton! You should get your instance from SDK, configure it and use it as needed. Calling ScanbotSDK.idCardScanner() elsewhere will return a new instance of this component with default config
    • Refactor RTU's NfcPassportScanningResult entity: make corresponding fields of type Int
  • πŸš™ Under the hood:
    • Switched from using org.jetbrains:annotations to androidx.annotation:annotation
    • Improved FinderView behaviour in RTU BarcodeScannerActivity screen layout
    • Updated third-party libraries used in SDK (see Third-party Libraries)

Version 1.82.0 (21 Apr 2021)#

  • πŸŽ‰ New:
    • Added a new option setOpticalZoomRange(zoomRange: ZoomRange) in IScanbotCameraView
    • Added two new options setCameraZoomFactor(zoomFactor: Float) and setCameraZoomRange(zoomRange: ZoomRange) in BarcodeScannerConfiguration for BarcodeScannerActivity RTU screen
    • Added gs1DecodingEnabled parameter in BarcodeScannerAdditionalConfig and BarcodeScannerAdditionalConfiguration to disable the decoding of FNC1 characters in CODE128 barcodes
  • πŸš€ Improvements:
    • Initialization parameters for AESEncryptedFileIOProcessor (key: SecretKey?, initializationVector: ByteArray, salt: ByteArray and iterationCount: Int) became public.
  • ⚠️ Breaking changes:
    • Method setSignificantShakeDelay in LicensePlateScannerConfiguration as well as significantShakeDelay field in TextDataScannerStep are now of Long type
    • Renamed ImageFilterType.ML_BASED_BINARIZATION (filter for low-contrast documents with heavy shadows) to ImageFilterType.SENSITIVE_BINARIZATION
  • πŸš™ Under the hood:
    • FilterPredictor instance is no longer a singleton. Each time ScanbotSDK.filterPredictor() is called a new instance will be created - consider that in your code and stick to using it on a "single instance per screen basis".

Version 1.81.0 (26 Mar 2021)#

  • πŸŽ‰ New:
    • Now it is possible to set ScanbotBarcodeDetector to scan only the given types of BarcodeDocumentFormat and filter out others automatically
    • Added minimumTextLength, maximumTextLength, minimum1DQuietZoneSize params for ScanbotBarcodeDetector as BarcodeScannerAdditionalConfig entity.
    • Added new method setBarcodeScannerAdditionalConfiguration for RTU BarcodeScannerConfiguration to set the minimumTextLength, maximumTextLength, minimum1DQuietZoneSize params.
    • Introduce License Plate Scanner providing ability scan license plates on the vehicles and extract country code and plate number from it
    • GenericTextRecgonizer now has different strategies for scanning Documents and LCD's
    • Added a new configuration option setAcceptedDocumentTypes(acceptedDocumentTypes: List<IdScanResult.DocumentType>) in IdCardScanner
    • Added a new configuration option setAcceptedDocumentTypes(acceptedDocumentTypes: List<IdScanResult.DocumentType>) in IdCardScannerConfiguration for RTU IdCardScannerActivity
    • Added a new configuration option setSharpnessAcceptanceFactor(sharpnessAcceptanceFactor: Float) in IdCardScannerConfiguration for RTU IdCardScannerActivity
    • Added a new configuration parameter accessibilityConfiguration for DocumentScannerActivity and CroppingActivity allowing to set hints for the screen reader
  • πŸš€ Improvements:
    • ML-based document detection is now used by default which improves the detection quality for most cases
    • Wrapped general JVM exceptions with specific Scanbot SDK alternatives to enhance crash report readability.
    • Moved MRZScanner, GenericTextRecognizer, MultipleObjectsDetector and BusinessCardsImageProcessor features to the SDK Package 2
    • Optimized memory consumption of BarcodeDetector
    • scanbot-sdk-crypto-persistence library supports min API 21+
  • 🐞 Bug fixes:
    • Fixed calculation of the visible rectangle for CameraView. It solves problems related to the scanning of documents which have borders close to the side of the screen
    • Fixed multiple simultaneous detection results on a single ITF barcode
  • ⚠️ Breaking changes:
    • ML-based document detection is now used by default. Therefore the dependency on io.scanbot:sdk-ml-docdetector was added by default as well. You may switch back to the edge-based approach by setting contourDetectorType in ScanbotSDKInitializer and exclude the module with assets by exclude group: "io.scanbot", module: "sdk-ml-docdetector" in build.gradle file. Excluding it may also be helpful to reduce the .apk size (~4MB) if the usage of the document detection mechanism is not planned at all.
    • io.scanbot.sdk.ocr.LanguageNotFoundException moved to package io.scanbot.sdk.exceptions.ocr.LanguageNotFoundException
    • IMPORTANT! Classical component ScanbotBarcodeDetector is no longer a singleton! You should get your instance from SDK, configure it and use it as needed. Calling ScanbotSDK(this).barcodeDetector() elsewhere will return a new instance of this component with default config. Refer to example implementation.
    • Removed a set of methods from ScanbotBarcodeDetector and BarcodeDetectorFrameHandler - code should be updated to use new setConfig and modifyConfig methods and BarcodeScannerConfig entity.
    • Now the prepareGenericTextRecognizerBlobs call in ScanbotSDKInitializer is redundant for the usage of the Data Scanner SDK
    • CheckableTextView was removed from the SDK. Consider the usage of CheckedTextView from Android SDK instead
  • πŸš™ Under the hood:
    • The models for the ML-based document detector are now included in the .aar library. It may lead to an increase in the size of the .apk file if App Bundle is not used. However, the size of the installed application will decrease
    • Updated AndroidX Security Crypto library to the version 1.1.0-alpha03
    • Removed AndroidX security-identity-credential library from dependencies

Version 1.80.1 (10 Mar 2021)#

  • ⚠️ Breaking changes:
    • Removed barcode format BarcodeFormat.MSI_PLESSEY

Version 1.80.0 (22 Feb 2021)#

  • πŸŽ‰ New:
    • Implemented encrypted storage for the generated TIFF documents
    • Added support of parsing of Swiss QR codes in Barcode scanner
  • πŸš€ Improvements:
    • Optimized the generation of sandwiched PDFs with OCR content and text recognition for source URIs as an input
  • ⚠️ Breaking changes:
    • Added an additional parameter to the methods writeTIFFFromFiles(sourceFiles: List<File>, sourceFilesEncrypted: Boolean, targetFile: File, parameters: TIFFImageWriterParameters): Boolean in TIFFWriter class for support of encrypted source images.
    • As OpticalCharacterRecognizer#recognizeTextWithPdfFromUris() doesn't compress input images under the hood, the resulting PDF file might become bigger. Make sure to compress images before passing them to OpticalCharacterRecognizer
  • πŸš™ Under the hood:
    • Optimized delay handling between camera frames in BarcodeDetectorFrameHandler

Version 1.79.0 (08 Feb 2021)#

  • πŸŽ‰ New:
    • IdScanResult from IdCardScanner now has additional mrzFields and mrzCheckDigits which are extracted automatically if the MRZ was detected on the document
  • πŸš€ Improvements:
    • Massive improvements in the quality of the IdCardScanner
  • 🐞 Bug fixes:
    • MRZScanner now recognizes KindOfDocument, PINCode, LanguageCode, VersionNumber fields correctly. Previously they were detected as Unknown
  • ⚠️ Breaking changes:
    • A call to .prepareIdCardScannerBlobs(true) method in ScanbotSDKInitializer was removed. Now it is not needed to prepare the blobs for the usage of IdCardScanner and only requires a gradle dependency
  • πŸš™ Under the hood:
    • Updated the version of CWAC Camera library to 0.6.41.

Version 1.78.0 (01 Feb 2021)#

  • πŸŽ‰ New:
    • Implemented an encrypted storage for the page images and generated PDF documents
  • πŸš€ Improvements:
    • ScanbotPDFRenderer.renderDocumentFromImages() doesn't create a Page under the hood and doesn't create copies of the images during the PDF rendering process anymore.
  • 🐞 Bug fixes:
    • Fix CameraX view bug with contour detector mirroring in the landscape for the front facing camera
  • ⚠️ Breaking changes:
    • Changed behavior of EditPolygonImageView when it mutated the given list of the polygon points. Now it works with a copy of the list.
    • As ScanbotPDFRenderer.renderDocumentFromImages() doesn't compress images under the hood, the result PDF file might become bigger. Make sure to compress images before passing them to ScanbotPDFRenderer
    • Added additional parameter in method renderDocumentFromImages(imageFileUris: List<Uri>, sourceFilesEncrypted: Boolean = false, pageSize: PDFPageSize): File? in PDFRenderer class for support of encrypted source images.
    • Added additional parameter in methods recognizeTextFromUris(imageFileUris: List<Uri>, sourceFilesEncrypted: Boolean = false, languages: Set<Language>): OcrResult ans recognizeTextWithPdfFromUris(imageFileUris: List<Uri>, sourceFilesEncrypted: Boolean = false, pageSize: PDFPageSize, languages: Set<Language>): OcrResult in OpticalCharacterRecognizer class for support of encrypted source images.
  • πŸš™ Under the hood:
    • Updated the version of Android PDF Writer library to 1.0.9.

Version 1.77.2 (14 Jan 2021)#

  • 🐞 Bug fixes:
    • Further fixes for the "double scan" issue with the RTU UI BarcodeScannerActivity

Version 1.77.1 (12 Jan 2021)#

  • 🐞 Bug fixes:
    • Fixed a concurrency issue (RejectedExecutionException) for the frame handling in CameraView
    • Fixed a double scan issue for BarcodeScannerActivity RTU screen
    • Fixed a ShutterButton animation

Version 1.77.0 (17 Dec 2020)#

  • πŸŽ‰ New:
    • OpticalCharacterRecognizer now has a recognizeTextFromBitmap method which allows to run OCR process on a bitmap
    • Added Front Facing Camera support (BETA). Call setCameraModule(CameraModule.FRONT) in ScanbotCameraView or ScanbotCameraXView to enable it.
    • Added CAMERA_MODULE configuration parameter for RTU screens
    • Added setDetectorType configuration parameter for barcode scanner and related RTU UI screens. It allows to disable model-based detection which might be helpful to increase the performance in some cases
  • πŸš€ Improvements:
    • Enhance PageFileStorage class with overloaded removeAll(pageIds: List<String>) method: deletes all files for pages with given IDs
    • Improved detection of ITF barcodes
  • 🐞 Bug fixes:
    • The flash button on RTU UI screens is not shown anymore on devices without a flash light
    • Fixed not working live detection on some devices with non-standard camera frame resolution
  • ⚠️ Breaking changes:
    • io.scanbot.tiffwriter package path is now changed to io.scanbot.sdk.tiff
    • In TIFFWriter class binarize - option was replaced with binarizationFilter: ImageFilterType option which accepts only binarization filters
    • Changed package name io.scanbot.sdk.ui.view.camera.configuration.WorkflowScannerConfigurationParams to io.scanbot.sdk.ui.view.workflow.configuration.WorkflowScannerConfigurationParams
  • πŸš™ Under the hood:
    • Updated the version of CWAC Camera library to 0.6.40.

Version 1.76.3 (07 Dec 2020)#

  • 🐞 Bug fixes:
    • Fixed incorrect processing of the text part in DataMatrix barcodes with binary data
    • Fixed a rare case of the QR-codes processing which might lead to crash

Version 1.76.2 (04 Dec 2020)#

  • 🐞 Bug fixes:
    • Fixed a bug with the size of generated PDF documents being too big
    • Fixed a crash in PageProcessor.rotate() method when there is no UNFILTERED_DOCUMENT image
    • Some redundant logs were cut out
  • πŸš™ Under the hood:
    • Return to the usage of crl.android.pdfwriter:apwlibrary library for the PDF processing. Now PNG images saved into PDF as JPG with 100% compression

Version 1.76.1 (02 Dec 2020)#

  • πŸŽ‰ New:
    • BarcodeScannerActivity and BatchBarcodeScannerActivity now support a possibility to set a timeout via setAutoCancelTimeout method in seconds. You will get CANCELLATION_REASON_TIMEOUT = true as an extra for RESULT_CANCELED in activity result in that case
  • πŸš€ Improvements:
    • Better recognition of rotated and damaged PDF417 codes

Version 1.76.0 (23 Nov 2020)#

  • πŸš€ Improvements:
    • Huge improvements in detection of barcodes of PDF417 type
    • ScanbotBarcodeDetector ML blobs are packaged into the native library - that reduces the size of the installed application
  • ⚠️ Breaking changes:
    • Barcode Scanner:
      • The ML blobs are now available as a separated library io.scanbot:sdk-barcode-assets:$latestSdkVersion. Please make sure to add it to your dependencies to be able to use ScanbotBarcodeDetector.
      • The obsolete method ScanbotSDKInitializer#prepareBarcodeScannerBlobs(prepareBlobs: Boolean) was removed from the SDK API.
    • DC Scanner:
      • DC scanner uses barcode scanner under the hood, so it is also needed to add a dependency on io.scanbot:sdk-barcode-assets:$latestSdkVersion

Version 1.75.5 (19 Nov 2020)#

  • πŸŽ‰ New:
    • New configuration parameter UseButtonsAllCaps for all the RTU UI screens which controls whether buttons should use ALL CAPS

Version 1.75.4 (18 Nov 2020)#

  • 🐞 Bug fixes:
    • Fixed WorkflowScannerActivity not picking given colors and texts configuration

Version 1.75.3 (17 Nov 2020)#

  • 🐞 Bug fixes:
    • Fixed a bug when RTU UI screens might lose their configuration or crash after going to a paused state
  • πŸš™ Under the hood:
    • Dagger library was updated to 2.25.2

Version 1.75.2 (10 Nov 2020)#

  • 🐞 Bug fixes:
    • Fixed a bug when BatchBarcodeScannerActivity was picking only the first barcode on each scanned frame
    • Fixed rendering of the PDF without OCR for PNG storage format
  • πŸš™ Under the hood:
    • Removed Android PDF Writer library in order to use native Android SDK solution.

Version 1.75.1 (30 Oct 2020)#

  • 🐞 Bug fixes:
    • Fixed MagnifierView drawing

Version 1.75.0 (29 Oct 2020)#

  • πŸŽ‰ New:
    • Added FinderPictureCallback that automatically crops the visible FinderOverlayView zone and fix an orientation of the snapped image
  • πŸš€ Improvements:
    • Changed PictureCallback implementation - it is an abstract class that implements BasePictureCallback interface
    • Improved recognition of barcodes when scanning matrix barcodes from a short distance
  • 🐞 Bug fixes:
    • Fix possible crash in SimpleOcrPerformer when no text data detected on the image
    • Added the "force fetch" mechanism for ScanbotBarcodeDetector ML blobs.
  • πŸš™ Under the hood:
    • Update compile SDK of the library to 29

Version 1.74.2 (16 Oct 2020)#

  • 🐞 Bug fixes:
    • Make IdCardTextFieldResult fields from IdCardScannerActivity public

Version 1.74.1 (15 Oct 2020)#

  • πŸš€ Improvements:
    • Improved memory usage of the Id Card scanner

Version 1.74.0 (6 Oct 2020)#

  • πŸŽ‰ New:
    • Introduce TextDataScannerActivity RTU UI for the convenient use of our new Data Scanner SDK.
    • Optical pinch-to-zoom feature for the CameraView and the digital zoom feature (see ZoomFinderOverlayView)
    • Consumer proguard rules are now integrated into the library
    • New animations during the document detection and page snapping.
    • Snapped Pages in RTU DocumentScannerActivity and WorkflowScannerActivity are stored in the temp directory draft_snapping_pages in the internal (or custom if specified) SDK directory. If the scanning session is canceled all draft pages will be removed automatically. If the user will finish scanning successfully all snapped pages will be moved to the default pages directory automatically. If the application was terminated during the snapping session you can clean all draft pages with Cleaner#cleanUpAllDraftPagesData().
    • New parameter ocrResolutionLimit in the configuration for GenericTextRecgonizer which allows to increase the performance of the recognition.
    • New ImageFilterType.ML_BASED_BINARIZATION (for low-contrast documents with heavy shadows) and new ML-Based implementation of the ImageFilterType.BACKGROUND_CLEAN (a filter to remove a noise on the background). The usage of those filters requires setting the initialization property to ScanbotSDKInitializer.imageProcessorType(ImageProcessor.ML_BASED) and a new gradle dependency
    • IdCardScanner now has an orientation parameter for the scanBitmap method
    • IdCardScanner now has an acceptedSharpnessScore parameter to filter out blurry images. IdCardScannerFrameHandler now requires an id card scanner which has this value set to > 0. It will crash if the value is not set
    • IdCardScannerFrameHandler now has a shouldRecognize parameter to specify if it should recognize fields values or just return a status
    • New IdCardAutoSnappingController to automate the process of taking pictures of ID cards and passports
    • PolygonView size methods now work with Int values and are marked with @Px annotation
    • RTU UI NFC Passport scanner component now has setPassportPhotoSaveCallback method in configuration that accepts custom callback's Class to save passport photo in a secure way. See example
    • FormattedBarcodeDataMapper's DEFAULT implementation was removed. null is new default value for BatchBarcodeScannerActivity.newIntent method instead. See example
  • πŸš€ Improvements:
    • Optimized performance of the image processing for simple operations (Rotation, Crop, Resize)
    • Faster saving of the snapped pages
    • Better recognition of ID cards with stickers with an updated address
    • Increased camera preview start speed
  • 🐞 Bug fixes:
    • MRZRecognitionResult parsed from a string now always has a confidence value 1.0

Version 1.73.2 (29 Sep 2020)#

  • πŸš€ Improvements:
    • Added a view with a hint for CroppingActivity component. See hintTitle and hintTitleColor properties in CroppingConfiguration

Version 1.73.1 (16 Sep 2020)#

  • πŸš€ Improvements:
    • Improved recognition of damaged DataMatrix barcodes

Version 1.73.0 (8 Sep 2020)#

  • πŸŽ‰ New:
    • Massive performance and UX optimizations in the Document Scanner
    • Introduce Data Scanner SDK - a versatile OCR solution with validation rules for scanning short pieces of text, numbers and codes, like card or form fields. See [[Using Data Scanner SDK]]
    • Added an ability to scan NFC tags in passports using NfcPassportScannerActivity
    • Added delayAfterFocusCompleteMs property to camera to handle bad autofocus for some devices.
    • Added SAM callbacks support for FrameHandler callbacks
  • 🐞 Bug fixes:
    • Fixed the use of setAutoSnappingSensitivity which was ignored in previous versions
  • πŸš™ Under the hood:
    • Upgraded some libs to latest versions: OpenCV 4.4.0, Kotlin Standard Library 1.4, added OpenJPEG 2.3.1

Version 1.72.3 (2 Sep 2020)#

  • 🐞 Bug fixes:
    • MRZ: Fixed wrong check digit type in passports for the DocumentNumber field

Version 1.72.2 (19 Aug 2020)#

  • πŸŽ‰ New:
    • Now it is possible to parse a string with MRZ data with MRZScanner and get MRZRecognitionResult from it
  • 🐞 Bug fixes:
    • Fixed overlapping buttons on CroppingActivity
    • Fixed wrongly displayed toast before the camera permission was granted on IdCardScannerActivity
    • Fixed hanging CameraView after pausing if the orientation was not locked

Version 1.72.1 (13 Aug 2020)#

  • 🐞 Bug fixes:
    • Fixed a crash during the initialization process on some devices with Android 5.1 and less

Version 1.72.0 (11 Aug 2020)#

  • πŸŽ‰ New:

    • New RTU UI screen IdCardScannerActivity for the convenient use of the IdCardScanner
  • πŸš€ Improvements:

    • Optimized camera view initialization
  • 🐞 Bug fixes:

    • Fixed a crash in DocumentAutoSnappingController when there is a problem with a license
    • Fixed a crash for barcodes with non-string raw data
    • Binary raw data for barcodes now filled correctly in BarcodeItem.rawBytes

Version 1.71.0 (30 Jul 2020)#

  • πŸŽ‰ New:

    • Introduce IdCardScanner that can scan ID Card of supported types, crop detected card and recognize fields data. See [[Using ID Card Scanner]]
    • setTopBarBackgroundColor() for RTU UI components works now with status bar too
    • New fields patientInfoFields and dcFormType are available in the result of the DC certificate scanning
  • 🐞 Bug fixes:

    • Removed outdated field EditPolygonImageView.DEFAULT_POLYGON

Version 1.70.4 (17 Jul 2020)#

  • 🐞 Bug fixes:
    • Fixed animation bug in AdaptiveFinderOverlayView

Version 1.70.3 (15 Jul 2020)#

  • πŸš€ Improvements:

    • Improved barcode detection model
    • Improved handling of ink spread issues with Code128 barcodes
    • Improved barcode and QR code live detection especially for very dense codes
    • Refactor io.scanbot.sdk.entity.PageEntity for internal purposes. Use io.scanbot.sdk.persistence.Page instead for all classes available from Scanbot SDK.
    • Refactor auto-snapping components, renamed AutoSnappingController to DocumentAutoSnappingController. See autosnapping documentation
  • Removed classes:

    • Removed deprecated io.scanbot.sdk.ocr.process.TextRecognition from ScanbotSDK instance
    • Removed deprecated io.scanbot.sdk.docprocessing.DocumentProcessor from ScanbotSDK instance as deprecated
    • Removed deprecated io.scanbot.sdk.docprocessing.draft.DraftExtractor from ScanbotSDK instance as deprecated
    • Removed deprecated io.scanbot.sdk.persistence.PageFactory from ScanbotSDK instance as deprecated

Version 1.70.2 (8 Jul 2020)#

  • πŸŽ‰ New:
    • Beta: Blurriness estimator BlurEstimator
    • Added new barcode format BarcodeFormat.MSI_PLESSEY

Version 1.70.1 (17 Jun 2020)#

  • 🐞 Bug fixes:
    • Fixed nullability for return values for ChequeRecognizer, ContourDetector and MRZRecognizer
    • Fixed possible crash in EditPolygonView. If you are using this classical component, it is highly recommended to update from 1.70.0

Version 1.70.0 (12 Jun 2020)#

  • πŸŽ‰ New:
    • Added ability to scan multiple barcodes in a row with the new RTU UI Component BatchBarcodeScannerActivity
    • Added AdaptiveFinderOverlayView, which automatically adjusts to the document format
    • Added ability to process jpeg- and nv21-encoded ByteArray for ImageProcessor
    • Added overloaded methods that accept single Operation for ImageProcessor
    • (BETA) New ScanbotCameraXView with CameraX-based implementation of ScanbotCameraView
    • If after update you get an error, that Invoke-customs are only supported starting with Android O (--min-api 26), then at the end of the android block, right after buildTypes, add the following snippet to your build.gradle file:
        compileOptions {            sourceCompatibility JavaVersion.VERSION_1_8            targetCompatibility JavaVersion.VERSION_1_8        }
  • 🐞 Bug fixes:

    • Fixed mapping of rare language codes by RFC4646 tags like "zh-Hans", "zh-Hant", "az-Cyrl", etc.
  • πŸš€ Improvements:

    • Updated ProGuard rules
    • FINDER_WIDTH and FINDER_HEIGHT params in configurations for BarcodeScannerActivity and MrzScannerActivity were replaced with FINDER_ASPECT_RATIO
    • If OCR blobs have been updated in assets, they will be fetched automatically on ScanbotSDKInitializer.initialize()
    • ImageProcessor.process() is now deprecated, use processBitmap() instead
    • Update to Language class to make ability of setup languages by iso1, iso3, and tesseract codes.
    • Now it is possible to detach AutoSnappingController after usuage to avoid memory leaks when reusing a ContourDetectorFrameHandler
  • ⚠️ Moved classes:

    • Moved document processing classes from net.doo.snap.process package to io.scanbot.sdk.docprocessing
    • Moved net.doo.snap.ui.MultiplePolygonsView to io.scanbot.sdk.ui.multipleobjects.MultiplePolygonsView
    • Moved OCR feature classes from net.doo.snap.process package to io.scanbot.sdk.ocr.process
    • Moved net.doo.snap.process.util.DocumentDraft to io.scanbot.sdk.entity.DocumentDraft
    • Moved net.doo.snap.ui.EditPolygonImageView to io.scanbot.sdk.ui.EditPolygonImageView
    • Moved net.doo.snap.ui.MagnifierView to io.scanbot.sdk.ui.MagnifierView
    • Moved net.doo.snap.ui.PolygonView to io.scanbot.sdk.ui.PolygonView
    • Moved net.doo.snap.camera.AutoSnappingController.AutoSnappingCallback to io.scanbot.camera.BaseAutoSnappingController.AutoSnappingCallback
  • ⚠️ Renamed packages:

    • Renamed net.doo.snap.lib.detector package to io.scanbot.sdk.core.contourdetector
    • Renamed net.doo.snap.payformscanner package to io.scanbot.sdk.payformscanner
    • Renamed io.scanbot.payformscanner.model to io.scanbot.sdk.core.payformscanner.model
    • Renamed net.doo.snap.mrzscanner package to io.scanbot.sdk.mrzscanner
    • Renamed net.doo.snap.dcscanner package to io.scanbot.sdk.dcscanner
    • Renamed net.doo.snap.chequescanner package to io.scanbot.sdk.chequescanner
    • Renamed net.doo.snap.intelligence package to io.scanbot.sdk.ocr.intelligence
    • Renamed net.doo.snap.entity to io.scanbot.sdk.entity
    • Renamed net.doo.snap.persistence tp io.scanbot.sdk.persistence
    • Renamed net.doo.snap.blob to io.scanbot.sdk.blob
    • Renamed net.doo.snap.util to io.scanbot.sdk.util
    • Renamed net.doo.snap.intelligence to io.scanbot.sdk.intelligence
    • Renamed net.doo.snap.camera to io.scanbot.sdk.camera
    • Renamed io.scanbot.barcodescanner.model.BarCodeScannerDocumentFormat to io.scanbot.barcodescanner.model.BarCodeFormattedResult
    • Renamed io.scanbot.sdk.entity.Page to io.scanbot.sdk.entity.PageEntity
  • ⚠️ Removed classes:

    • Removed deprecated classes net.doo.snap.ScanbotSDK and net.doo.snap.ScanbotSDKInitializer. Please use the equivalent classes from the package io.scanbot.sdk.*.
    • Removed deprecated methods in class io.scanbot.sdk.core.contourdetector.ContourDetector. Please use ImageProcessor instead. See [[Image processing and Filters]] for more details.

Version 1.61.1 (8 Jun 2020)#

  • πŸš€ Improvements:
    • The behavior of Detect/Reset buttons on the CroppingActivity was improved

Version 1.61.0 (28 Apr 2020)#

  • πŸŽ‰ New:
    • Added RTU UI for Multiple Objects Detector
    • Size for Scanbot SDK Package 1 is significantly decreased
    • Added ML-based Contour Detector (new Gradle dependecy and a flag in 'ScanbotSDKInitializer')
    • Constructor ContourDetector() is now deprecated, use ScanbotSDK.contourDetector() instead
    • Using a DC Scanner now requires a call to ScanbotSDKInitializer.prepareDcBlobs(true)
    • Breaking changes for ContourDetectorFrameHandler.attach. Now it requires ContourDetector instance
    • Added ability to detect barcode on RGBA byte array
    • Added GSON library for JSON serialization/deserialization (instead of Moshi)
  • πŸš€ Improvements:
    • Updated ProGuard rules
    • Upgraded Tesseract to the version 4.1
    • Optimized behaviour of the live contour detection. Nicer and faster.
    • Added flag to force autofocus before the capturing in AutoSnappingController
    • European Health Insurance Card (EHIC) Scanner: Automatic country detection and support for Austrian cards
    • European Health Insurance Card (EHIC) Scanner: Added validation types (HealthInsuranceCardRecognizer::ValidationType) for HealthInsuranceCardRecognizer
    • Improved performance of the disability certificate scanner (DCScanner)
    • Decreased size of the SDK Package 1

Version 1.60.0 (11 Mar 2020)#

  • πŸŽ‰ New:
    • Added new LicenseErrorHandler mechanism for tracking license check events during Scanbot SDK api calls
    • Added ImageProcessor and Operation chains mechanism for the image processing
    • Added Tunes for Image Filters
    • Added shutterSoundEnabled configuration option for DocumentScannerActivity and WorkflowScannerActivity in RTU UI screens
    • Added Multiple Objects Detector feature
    • Added BusinessCardsImageProcessor
    • Added the filter prediction feature (FilterPredictor)
  • πŸš€ Improvements:
    • Updated minimum Android API level to 21 (Android 5.0)
    • Updated list of third party dependencies (see Libraries.txt)
    • Updated ProGuard config
    • Better Error Handling for android.permission.CAMERA permission in RTU UI screens
    • Improved OCR by binarizing image before processing. To disable this, set OcrSettings.binarize = false during SDK initialization
    • ScanbotBarcodeDetector.decodeWithState() is now deprecated. Please, use ScanbotBarcodeDetector.detectFromNv21() instead. It is also possible to detect barcodes from bitmap and jpeg bytearray
    • Implemented new ML-based Scanbot Barcode Detector
    • Removed support of ScanbotBarcodeDetector.BarcodeDetectorType#GoogleVision and ScanbotBarcodeDetector.BarcodeDetectorType#ZXing detectors
  • 🐞 Bug fixes:
    • Fixed the live-detection for ChequeScanner

Version 1.56.3 (14 Jan 2020)#

  • 🐞 Bug fixes:
    • Fixed the camera issue in RTU UI DocumentScannerActivity.

Version 1.56.2 (13 Dec 2019)#

  • 🐞 Bug fixes:
    • Fixed the compatibility issue with kotlin-kapt.

Version 1.56.1 (12 Nov 2019)#

  • 🐞 Bug fixes:
    • Re-enabled XML drawables support for the MagnifierView.

Version 1.56.0 (25 Oct 2019)#

  • πŸš€ Improvements:
    • MRZ Scanner: Added all checkdigits in MRZ result as additional fields - see MRZRecognitionResult.checkDigits.
  • 🐞 Bug fixes:
    • Fixed NPEs in the EditPolygonImageView when trying to use it without the MagnifierView.
    • Fixed crashes in the beta Barcode Scanner with parsing AAMVA data of PDF417 barcodes on US driver licenses.
    • Cleaned up SDK manifests (removed unused permissions as well as some obsolete and conflicting attributes).

Version 1.55.0 (17 Oct 2019)#

  • πŸŽ‰ New:
    • Added new features in TIFFWriter:
      • Support for further TIFF compressions like CCITTFAX4, ADOBE_DEFLATE, etc. See the enum TIFFImageWriterCompressionOptions.
      • Ability to define DPI value in TIFF metadata.
  • πŸš€ Improvements:
    • Improved API of the TIFFWriter class:
      • Deprecated some methods like writeBinarizedSinglePageTIFFFromFile, writeSinglePageTIFFFromFile, writeBinarizedMultiPageTIFFFromFileList, writeMultiPageTIFFFromFileList. Instead please use the new unified and simplified methods based on TIFF parameters TIFFImageWriterParameters - e.g. writeTIFFFromFiles(List<File> sourceFiles, File targetFile, TIFFImageWriterParameters parameters).
  • πŸ‘‰ See our updated tiff-writer example app.

Version 1.54.0 (19 Aug 2019)#

  • 🐞 Bug fixes:
    • Fixed OCR issues with some document images.
    • Fixed crashes with some image filters, like BACKGROUND_CLEAN, DEEP_BINARIZATION, LOW_LIGHT_BINARIZATION, etc. on ARM 32-bit devices (armeabi-v7).
    • Fixed finder view of the RTU UI EHIC Scanner (HealthInsuranceCardScannerActivity).
  • πŸš™ Under the hood:
    • Upgraded to OpenCV 3.4.7

Version 1.53.0 (15 Aug 2019)#

  • πŸŽ‰ New:
    • Added a new image filter LOW_LIGHT_BINARIZATION_2.
    • New recognizer for the European Health Insurance Cards (EHIC). Provides live detection and data extraction of all fields on the back of the card. Available as Classical SDK Components (HealthInsuranceCardScanner, HealthInsuranceCardScannerFrameHandler) as well as the Ready-To-Use UI Component (HealthInsuranceCardScannerActivity). See our updated example apps on GitHub for easy integration.
    • New QR- & Barcode Scanner as beta feature which provides:
      • better detection and extraction of 1D and 2D barcodes, especially Data Matrix and PDF 417 codes
      • support for multiple barcode detection
      • out-of-the-box parsers, like German Medical Plans (Medikationsplan) based on Data Matrix, ID Cards or US Driver Licenses (AAMVA format) both based on PDF 417.
    • See the new example app beta-barcode-scanner.
    • Please note that this new QR- & Barcode Scanner component is a BETA feature and is still under active development and improvement. We will try to keep the API as stable as possible. However, please note that we can't guarantee that.
  • ⚠️ Breaking Changes:
    • The API of the BarcodeScanningResult class has changed a little. It now contains multiple results as a list of BarcodeItems.
  • 🐞 Bug fixes:
    • Fixed camera issues on OnePlus 7 Pro devices.

Version 1.52.0 (18 Jun 2019)#

  • πŸš€ Improvements:
    • Removed dependencies to the deprecated library net.doo:doo-datamining-tools-android.
  • 🐞 Bug fixes:
    • Removed permission READ_PHONE_STATE used in a sub library of the Scanbot SDK.

Version 1.51.0 (6 Jun 2019)#

  • πŸŽ‰ New:
    • Added a new config property in the RTU UI Document Scanner Component: DocumentScannerConfiguration.setMaxNumberOfPages(number) - Maximum number of pages to scan.

Version 1.50.0 (6 May 2019)#

  • πŸŽ‰ New:
    • Workflows - New RTU UI Scanning Components. See the [[Workflows]] section for more details.
    • New black & white image filter LOW_LIGHT_BINARIZATION - Binarization filter primarily intended to use on low-contrast documents with hard shadows.
    • Added new config properties for the RTU UI Document Scanner Component:
      • DocumentScannerConfiguration.setDocumentImageSizeLimit(height, width) - to limit the size of the document image.
      • DocumentScannerConfiguration.setShutterButtonHidden(boolean) - to hide the shutter button.
    • Added native libs (.so) for the x86_64 architecture.
    • Added text orientation recognizer. See the class TextOrientationRecognizer.
  • πŸš€ Improvements:
    • OCR - Upgraded the OCR engine to Tesseract v4.00. Improved recognition speed and quality. Please also note the Breaking Changes below.
    • Improved performance of the images filter DEEP_BINARIZATION.
    • Added a new method detectAndRecognizeDCBitmap(..) in DisabilityCertificateRecognizer as an alternative detection approach to the recognizeDCBitmap(..) method.
  • ⚠️ Breaking Changes:
    • OCR Language Files - If you use the OCR feature of the Scanbot SDK or some recognizer components which are based on OCR, please upgrade the OCR language files to Tesseract 4.00. See the [[Optical Character Recognition]] section for more details.
    • OCR API - OCR results per page. See OcrResult.ocrPages.
  • πŸš™ Under the hood:
    • Upgraded some libs to latest versions: OpenCV 3.4.5, LibPNG 1.6.36, LibTIFF 4.0.10, latest BoringSSL version.
  • 🐞 Bug fixes:
    • Fixed a bug with the Magnifier view in RTU Cropping UI (the Magnifier was stuck in a corner)
    • Various minor bug fixes and improvements.

Version 1.41.0 (31 Jan 2019)#

  • πŸŽ‰ New:

    • Implemented new feature "Required Aspect Ratios" in Classical Components to restrict document detection to given aspect ratios
    • Implemented new image filter types IMAGE_FILTER_OTSU_BINARIZATION, IMAGE_FILTER_DEEP_BINARIZATION and IMAGE_FILTER_EDGE_HIGHLIGHT
  • πŸš€ Improvements:

    • Improved recognition of pay cheques (ChequeScanner)
  • 🐞 Bug fixes:

    • Various minor bug fixes and improvements

Version 1.40.0 (5 Dec 2018)#

  • πŸŽ‰ New:

    • Support for AndroidX libraries.
    • PDF Renderer (io.scanbot.sdk.process.PDFRenderer) - A new simple and convenient API for PDF rendering. Now with support for PDF page sizes (e.g. A4, US Letter, etc.) See the docs [[Creating PDF Documents]] for more details.
    • OCR Recognizer/Renderer (io.scanbot.sdk.ocr.OpticalCharacterRecognizer) - A new simple and convenient API for OCR and PDF+OCR rendering. See the docs [[Optical Character Recognition]] for more details.
  • ⚠️ Breaking changes:

    • AndroidX: Since AndroidX fully replaces the Android Support Libraries (com.android.support.*, etc), you will have to migrate your project to AndroidX. See "Migrating to AndroidX" for more details.
    • Internal Storage: The Scanbot SDK now uses the internal storage by default, which is more secure and do not require storage permission prompts. See the docs [[Storage]] for more details about the storage system. Please note: In case your app is using the storage for RTU UI Pages as permanent storage, make sure to implement a suitable migration (E.g. move the archived Page images from external storage folder to the new internal storage. Or alternatively overwrite the storage to the external folder again).
    • OCR blobs handling: A new mechanism and API to handle OCR language files as well as other blob files (MRZ blobs, etc) as assets. It replaces the obsolete mechanism based on fetch() methods (blobManager.fetch(..)). See the docs [[Optical Character Recognition]] for more details.
  • πŸš€ Improvements:

Version 1.39.52.2 (22 Aug 2019)#

  • A special release for our customers who are not yet able to switch their projects to AndroidX. This version provides the same features, improvements and fixes as version 1.52.0, but without AndroidX dependencies.
  • Fixed crashes with some image filters, like BACKGROUND_CLEAN, DEEP_BINARIZATION, LOW_LIGHT_BINARIZATION, etc. on ARM 32-bit devices (armeabi-v7).
  • ⚠️ Please note that this is the last release version which is based on the deprecated Android Support Libraries. We strongly recommend to migrate your project to AndroidX libs and upgrade to the latest version of the Scanbot SDK (see above) to benefit from the latest features, improvements, bug fixes, etc.

Version 1.39.52 (18 Jun 2019)#

  • A special release for our customers who are not yet able to switch their projects to AndroidX. This version provides the same features, improvements and fixes as version 1.52.0, but without AndroidX dependencies.

Version 1.39.51 (6 Jun 2019)#

  • A special release for our customers who are not yet able to switch their projects to AndroidX. This version provides the same features, improvements and fixes as version 1.51.0, but without AndroidX dependencies.

Version 1.39.50 (10 May 2019)#

  • A special release for our customers who are not yet able to switch their projects to AndroidX. This version provides the same features, improvements and fixes as version 1.50.0, but without AndroidX dependencies.

Version 1.39.1 (15 Feb 2019)#

  • A special release for our customers who are not yet able to switch their projects to AndroidX. This version provides the same features, improvements and fixes as version 1.41.0, but without AndroidX dependencies.

Version 1.39.0 (19 Dec 2018)#

  • A special release for our customers who are not yet able to switch their projects to AndroidX. This version provides the same features, improvements and fixes as version 1.40.0, but without AndroidX dependencies.

Version 1.38.3 (19 Nov 2018)#

  • 🐞 Bug fixes:
    • Small fixes in MRZScanner (improved detection on still images of some ID cards)

Version 1.38.2 (25 Oct 2018)#

  • πŸš€ Improvements:
    • Updated Google Mobile Vision lib version to 16.2.0

Version 1.38.1 (16 Oct 2018)#

  • 🐞 Bug fixes:
    • Fixed a bug with freezing camera on Activity start
    • Fixed "CroppingActivity" layout for "ready-to-use-ui".

Version 1.38.0 (11 Oct 2018)#

  • πŸš€ Improvements:
    • Updated jpeg-turbo lib version to 1.5.3

Version 1.37.0 (27 Sep 2018)#

  • πŸŽ‰ New:
    • Reset/Detect functionality in RTU Cropping UI
    • Added support for orientationLockMode in RTU Cropping UI
  • ⚠️ Breaking changes:
    • The config parameter pageCounterButtonTitle in RTU Document Scanner UI now requires a placeholder "%d" for the number of pages (e.g. pageCounterButtonTitle: "%d Page(s)")
  • 🐞 Bug fixes:
    • Fixed an issue with camera on "Xiaomi Redmi 5 Plus" devices with MIUI Chinese ROM (#72)

Version 1.36.0 (19 Sep 2018)#

  • πŸš€ Improvements:
    • MRZ Recognizer: improved detection on still images and parsing of some optional MRZ fields.
    • Check out the updated mrz-scanner and ready-to-use-ui-demo example apps.
  • ⚠️ Breaking changes:
    • All MRZ Scanner and Recognizer components (MRZScanner, MRZScannerActivity) now require an additional trained data blob file (MRZ cascade blob file mrz.xml), which is included in the SDK io.scanbot:sdk-package-3 and can be fetched via blobManager.fetch(blobFactory.mrzCascadeBlob(), false)!

Version 1.35.0 (10 Sep 2018)#

  • πŸŽ‰ New:
    • Cheque Scanner - Real-time extraction of account & routing number (check out the cheque-scanner example app)
    • Added a new config parameter rotateButtonHidden for the RTU UI CroppingActivity
  • ⚠️ Breaking change: Added file format extension (.jpg or .png) for RTU UI Page images:
    • Affects the image files created by all RTU UI components, like DocumentScannerActivity, CroppingActivity, etc).
    • Please note that only the new created image files will contain extensions. The currently available image files in the temporary storage of the Scanbot SDK will not get file extensions and may become inaccessible. So please make sure to implement a suitable migration mechanism.
    • If you need backwards compatibility, you can disable the file format extensions via PageStorageSettings.addImageFileFormatExtension(false) on initialization of the SDK (new ScanbotSDKInitializer().usePageStorageSettings(new PageStorageSettings.Builder().addImageFileFormatExtension(false).build())...).
  • 🐞 Bug fixes:
    • MRZ Recognizer: fixed extraction of the field dateOfBirth from some French ID cards
  • πŸš€ Improvements:
    • Updated Google Vision lib version to 15.0.2
    • Improvements and potential fixes in SDK license manager

Version 1.34.0 (28 Aug 2018)#

  • Updated OpenCV version to 3.4.2
  • DC Scanner:
    • Improved recognition of low-constrast scans
    • ⚠️ Breaking change: The DC Scanner now uses eng.traineddata instead of deu.traineddata!

Version 1.33.3 (19 Jul 2018)#

  • Removed allowBackup flag in AndroidManifest.xml in io.scanbot:sdk-package-ui library

Version 1.33.2 (17 Jul 2018)#

  • Minor fixes and improvements in EditPolygonImageView

Version 1.33.1 (9 Jul 2018)#

  • DC scanner: improved date recognition in cases where the date text overlaps the date field's grid
  • Minor fixes and improvements in EditPolygonView

Version 1.33.0 (2 Jul 2018)#

  • Extended and improved the API to apply image filter on pages coming from the Ready-To-Use UI.
  • Added new image filters:
    • IMAGE_FILTER_BACKGROUND_CLEAN - Cleans up the background and tries to preserve photos within the image.
    • IMAGE_FILTER_BLACK_AND_WHITE - Black and white filter with background cleaning. Creates a grayscaled 8-bit image with mostly black or white pixels.
  • Minor bug fixes and improvements.

Version 1.31.3 (22 Jun 2018)#

  • Several fixes in io.scanbot.sdk.ScanbotSDKInitializer and io.scanbot.sdk.ScanbotSDK

Version 1.31.2 (21 Jun 2018)#

  • Several fixes in io.scanbot.sdk.ScanbotSDKInitializer and io.scanbot.sdk.ScanbotSDK

Version 1.31.1 (18 Jun 2018)#

  • Added functionality to apply a real orientation lock in ScanbotCameraView. Use the new methods cameraView.lockToLandscape(boolean lockPicture) or cameraView.lockToPortrait(boolean lockPicture) to lock the UI as well as the taken picture to a desired orientation.
  • Fixed a bug with shutter sound in ScanbotCameraView on some Android devices (e.g. Xiaomi).
  • Fixed a bug with freezing camera on Huawei P20 Lite.

Version 1.31.0 (11 Jun 2018)#

  • Added native libs for arm64-v8a.
  • Upgraded Dagger to version 2.16. It is recommended to upgrade the Dagger version in your App to 2.14.x or higher.

Version 1.30.0 (7 Jun 2018)#

  • πŸŽ‰ New! Added Ready-To-Use UI Components: DocumentScannerActivity, CroppingActivity, MRZScannerActivity, BarcodeScannerActivity. A set of easy to integrate and customize high-level UI components for the most common tasks in Scanbot SDK.
    • Published a new package io.scanbot:sdk-package-ui containing the new Ready-To-Use UI Components.
    • Added a new demo project ready-to-use-ui containing example code for the new Ready-To-Use UI Components.
  • Added a beautiful, animated ShutterButton component (io.scanbot.sdk.ui.camera.ShutterButton) which can also be used with our Classical UI Components. Check out the camera-view example app.
  • Minor bug fixes and improvements.
  • Internal refactorings and improvements:
    • Deprecated some classes in the net.doo.snap Java package. Please use the equivalent classes from the new Java package io.scanbot.sdk. (e.g. net.doo.snap.ScanbotSDKInitializer => io.scanbot.sdk.ScanbotSDKInitializer, net.doo.snap.ScanbotSDK => io.scanbot.sdk.ScanbotSDK, etc.)

Version 1.28.7#

  • Added setIgnoreBadAspectRatio(boolean ignoreBadAspectRatio) method for the AutoSnappingController.
  • Improved AutoSnappingController precision.

Version 1.28.6#

  • Updated Google Mobile Vision library version to 12.0.1.
  • Optimized ScanbotCameraView performance.

Version 1.28.5#

  • Added new attribute magnifierEnableBounding to MagnifierView, which allowing to enable/disable bounding of MagnifierView to the edge of screen.
  • Fixed issue with paddings on a MagnifierView

Version 1.28.4#

  • DCScanner detection quality improvements.

Version 1.28.3#

  • Scanbot SDK could be reinitialised with the new SDK license.
  • MagnifierView should not be the same size as EditPolygonImageView, but have to have the same aspect ratio.

Version 1.28.2#

  • Removed deprecated attributes magnifierCrossSize, magnifierCrossStrokeWidth, magnifierStrokeWidth and editPolygonMagnifier from MagnifierView since they don't have any effects on the view. To customize the MagnifierView please use the attributes magnifierImageSrc, magnifierRadius and magnifierMargin.

Version 1.28.1#

  • Exposed the method setImageRotation() in MagnifierView.

Version 1.28.0#

  • Added confidence values for detected fields in MRZScanner.
  • Changed default barcode detector to ZXing barcode detector.
  • Added Finder feature for barcode detectors.

Version 1.27.3#

  • Updated Google Mobile Vision library version to 12.0.0.

Version 1.27.2#

  • Fixed native libraries loading.
  • Fixed DCScanner bugs.

Version 1.27.1#

  • Added TIFFWriter feature to the Scanbot SDK package 1.
  • Added new "Pure Binarization" (ContourDetector.IMAGE_FILTER_PURE_BINARIZED) filter.
  • Added DCScanner recognition methods for Bitmaps and JPEG images.

Version 1.27.0#

  • Added MRZScanner (Machine Readable Zone scanner) feature to the Scanbot SDK package 3.
  • Added Finder feature for MRZScanner.
  • Added DCScanner (Disability Certificate scanner) feature to the Scanbot SDK package 4.
  • Updated Tesseract version to 3.05.01.
  • Updated Android support library dependencies version to 27.0.2.

Version 1.26.7#

  • Minor bug fixes and improvements

Version 1.26.6#

  • Minor bug fixes

Version 1.26.5#

  • Added cameraView.setPreviewMode(CameraPreviewMode mode) for adjusting camera preview frames in the camera layout.
  • Minor bug fixes

Version 1.26.4#

  • Minor bug fixes

Version 1.26.2#

  • Fixed bug when cameraView.setShutterSound(boolean enable) throws RuntimeException if the camera is already released.

Version 1.26.1#

  • Updated transitive Scanbot SDK dependencies
  • Added cameraView.setShutterSound(boolean enable) and cameraView.setAutoFocusSound(boolean enable) methods in ScanbotCameraView
  • Optimized AutoSnappingController sensitivity and auto snapping timings

Version 1.26.0#

  • Optimized Scanbot SDK license check - added Java exceptions with human readable messages
  • Added ScanbotSDK#isLicenseValid() method for the license validation
  • Fixed bug when the image preview edge zooming in MagnifierView was displayed incorrectly

Version 1.25.2#

  • Added detected text paragraphs, lines and words blocks of the optical character recognitions result in OcrResult
  • Added PageFactory#buildPage(Bitmap image) and PageFactory#buildPage(byte[] image) methods for Page generation

Version 1.25.1#

  • Added rotation methods for EditPolygonImageView

Version 1.25.0#

  • Added Barcode/QR code scanner feature to the Scanbot SDK package 1

Version 1.24.0#

  • Optimized transitive dependencies for Scanbot SDK library
  • Stop supporting armeabi architecture

Version 1.23.3#

  • Fixed contour detection and autosnapping freeze on the autofocus tap

Version 1.23.2#

  • Added detectionScore value in DetectedFrame class
  • Fixed 180 degree camera preview rotation

Version 1.23.0#

  • Added Scanbot SDK package 3 with SEPA Pay Form scanner feature

Version 1.22.6#

  • Fixed bug when ScanbotCameraView crashes with IllegalStateException after onPause

Version 1.22.5#

  • Added methods for setting contour detector parameters in ContourDetectorFrameHandler

Version 1.22.4#

  • Added methods for setting OCR and language classifier blobs paths in ScanbotSDKInitializer
  • Updated version of transitive dependencies

Version 1.22.3#

  • Added continuous focus option for ScanbotCameraView

Version 1.22.2#

  • Added method that provides internal OCR blobs directory in BlobManager in SDK-2

Version 1.22.1#

  • Added methods for performing OCR with multiple predefined languages in TextRecognition in SDK-2

Version 1.22.0#

  • Scanbot SDK was switched from RoboGuice DI to Dagger 2

Version 1.21.3#

  • Fixed minor camera issues
  • Added setters for edge width and color in EditPolygonImageView

Version 1.21.2#

  • Fixed dependencies in SDK packages

Version 1.21.1#

  • Added camera preview and picture size setters in ScanbotCameraView
  • Added camera orientation locks in ScanbotCameraView

Version 1.19.0#

  • Fixed issue when EditPolygonImageView with MagnifierView was working only as part of an Activity.
  • Removed DrawMagnifierListener.

Version 1.18.4#

  • EditPolygonImageView was not working properly on Android Nougat.

Version 1.18.2#

  • It was not possible to create PDFs without embedded text in SDK-2

Version 1.18.1#

  • Fixed crash related to text recognition

Version 1.18.0#

  • It's now possible to perform OCR without sandwiched PDF as part of result

Version 1.17.0#

  • It's now possible to customize the Logger implementation used by the SDK.

Version 1.16.0#

  • Added ContourDetector.processImageAndRelease - more memory efficient version of ContourDetector.processImageF.

Version 1.15.3#

  • Fixed build issues of OCR example.

Version 1.15.1#

  • Removed uses-feature android.hardware.camera. Camera is now optional.

Version 1.14.0#

  • Removed unused dependencies. Removed permission declarations from Package 1. Users are now responsible for declaring permissions. For more information see this page.

Version 1.13.1#

  • Fixed bug when final image contained less than preview image from camera stream.

Version 1.13.0#

  • Added ImageQualityOptimizer which allows you to optimize image size.

Version 1.12.2#

  • Fixed bug when AutosnappingController stop operating after onPause.

Version 1.12.1#

  • Color-document filter was disabled in ContourDetector. Now it works again.

Version 1.12.0#

  • Added ScanbotSDKInitializer#withLogging() method which allows you to turn on logging for SDK (disabled by default).
  • Improved edge detection.
  • Added new filter to ContourDetector.

Version 1.11.0#

  • Added ScanbotSDK.isLicenseActive() method.