Changelog | Android Document Scanner
Version 6.1.2 (4 Dec 2024)
- 🐞 Bug fixes:
- Fixed the height of the bottom sheet component for the Barcode Scanner RTU UI v2 screen.
Version 6.1.1 (28 Nov 2024)
- 🎉 New:
- Added
Cleaner.cleanUpSnappedDocumentsData()
method to delete all PDF and TIFF files generated with the legacy Page API. - Added
deleteAllDocuments()
anddeleteDocument(uuid)
function todocumentApi
.
- Added
- 🚀 Improvements:
- After calling
documentApi.createDocument()
,saveSync()
is now also called so that the new empty document will be created in the file storage.
- After calling
- 🐞 Bug fixes:
- Fixed the document migration function enabling the migration of encrypted pages.
Version 6.1.0 (8 Nov 2024)
- 🎉 New:
- Added support for 16KB page size (Android 15).
- RTU UI v2.0 Document Scanner:
- Added
NoFeedbackMode
to disable the animation when a page is captured and the document quality check is disabled. - Added a new property
hardwareButtonsEnabled
that enables snapping from the hardware volume buttons and the new hardware camera control button (enabled by default).
- Added
- Added option
MultipleScanningMode.allowEmptySubmission
to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
- 🚀 Improvements:
- Document detector:
- Improved detection speed and robustness against orientation changes.
- Improved robustness against picking up random contours.
- Improved robustness against documents with colored corners, booklets, handheld documents and cards, documents near edges of tables and overlapping documents.
- Document detector:
- 🐞 Bug fixes:
- RTU UI v2.0 Document Scanner:
- Fixed a rare crash on the review screen when encryption is enabled.
- Fixed a crash on some devices (e.g., Samsung S21, S22) with encryption enabled.
- Fixed an issue that could cause a crash in the Document RTU v2 scanner after scanning a very large number of pages in one session.
- Fixed KANJI mode for QR codes.
- Fixed a bug with incorrect raw bytes returned for some 2D barcode types.
- 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.
- RTU UI v2.0 Document Scanner:
- ⚠️ Breaking changes:
- Changed the type of the
rotation
field in thePage
class to theio.scanbot.sdk.core.ImageProcessor
enum.
- Changed the type of the
Version 6.0.0 (15 Oct 2024)
- 🎉 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
render()
methods which takedocument: Document
as an input parameter inPDFRenderer
interface. - Added
render()
methods which take optionaloutputFile: File
as an input parameter inPDFRenderer
interface. - Added
recognizeTextWithPdfFrom*()
methods which takedocument: Document
as an input parameter inOpticalCharacterRecognizer
interface. - Added
recognizeTextWithPdfFrom*()
methods which take optionaloutputFile: File
as an input parameter inOpticalCharacterRecognizer
interface. - Added
writeTIFF()
methods which takedocument: Document
as an input parameter inTIFFWriter
. - Added
writeTIFF()
methods which take optionaloutputFile: File
as an input parameter inTIFFWriter
. - Added new property
addAdditionalQuietZone
toBarcodeScannerAdditionalConfig
. - Added a new predefined collection of barcodes,
BarcodeFormat.POSTAL
, which includes barcodes used in the postal industry.
- 🚀 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
- 🐞 Bug fixes:
- Minor fixes for BarcodeScanner appearance in RTU UI v2 to make it consistent with iOS counterpart.
- Fix point sorting in
ContourDetector
.
- ⚠️ Breaking changes:
- 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()
inPDFRenderer
interface. - Changed
render()
method signature inPDFRenderer
interface. Now it takes an array of Uris instead of the List of Uris. - Renamed
writeTIFFFromImages()
andwriteTIFFFromFiles()
methods towriteTIFF()
inTIFFWriter
. - Renamed
writeTIFFFromImages(): ByteArray
methods totiffByteArray(): ByteArray
inTIFFWriter
. - Document scanner asset dependency
io.scanbot:sdk-ml-docdetector
was renamed toio.scanbot:sdk-ml-docdetector-assets
. - 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
- The usage of asset dependency
io.scanbot:sdk-mc-assets
and also the usage of OCR fromio.scanbot:sdk-package-2
now require an additional dependency to be specified:implementation("io.scanbot:sdk-common-ocr-assets:$scanbotSdkVersion")
.
- All classes from the old Page API were marked as deprecated and moved to
Version 5.2.3 (5 Aug 2024)
- 🐞 Bug fixes:
- Fixed the false positive document detection (introduced in v5.2.0).
- Fixed fallback in the "Background Clean" filter when the ML model is unavailable.
Version 5.2.2 (22 Jul 2024)
- 🎉 New:
- Added support for Canadian and UAE Check standards.
Version 5.2.1 (12 Jul 2024)
- 🚀 Improvements:
- Improved false positive rate of UPC/EAN extensions in live mode.
- 🐞 Bug fixes:
- Fixed image preprocessing for Document Quality Analyzer.
Version 5.2.0 (28 Jun 2024)
- 🎉 New:
- Added support for German health insurance cards (front and back) and European health insurance cards (back only) to
GenericDocumentRecognizer
,GenericDocumentRecognizerFrameHandler
andGenericDocumentRecognizerActivity
RTU UI screen. HealthInsuranceCardScanner
,HealthInsuranceCardScannerFrameHandler
, andHealthInsuranceCardScannerActivity
were deprecated. Please useGenericDocumentRecognizer
,GenericDocumentRecognizerFrameHandler
andGenericDocumentRecognizerActivity
instead.- Added
ResultAccumulationConfig
for the generic document recognition API. - Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
australiaPostCustomerFormat
,useIATA2OF5Checksum
anduseCode11Checksum
toBarcodeAdditionalParameters
,BarcodeScannerAdditionalConfiguration
for RTU UI screen andBarcodeRecognizerConfiguration
for RTU UI v2 screen. - Added
AustraliaPostCustomerFormat
enum to represent formats of the barcode data for the Australian Post customer barcode. - Added
resetPolygonState()
inBarcodePolygonView
to properly clean its state when disabling it after scanning.
- Added support for German health insurance cards (front and back) and European health insurance cards (back only) to
- 🚀 Improvements:
- Changed
resample
flag toresamplingMethod: io.scanbot.pdf.model.ResamplingMethod
inPdfConfig
class. - 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 generic document recognition on static images.
- Improved document detection on booklet documents.
- Improved performance of
DocumentQualityAnalyzer
. - Added support for Extended Channel Interpretation (ECI) for Data Matrix and Aztec.
- Improved GS1 string handling with new modes for decoding and validation. See
Gs1Handling
. ScanbotCameraXView
now logs more information throughout its lifecycle (use filter byScanbotCameraXView
tag). Logging is enabled only in the 'debug' builds.- Improved detection of UPC/EAN barcode extensions in live mode.
- The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- Changed
- 🐞 Bug fixes:
- Removed redundant dependency on
io.scanbot:sdk-licenseplate-assets
insideio.scanbot:sdk-generictext-assets
. - Fixed R8 obfuscation config for SDK logging classes.
- Fixed a bug in
ScanbotColor
where settingisArgb
to true, resulted in a wrong color.
- Removed redundant dependency on
- ⚠️ Breaking Changes:
- Removed ML assets library for Document Quality Analyzer -
io.scanbot:sdk-docqualityanalyzer-assets:X.X.X
. Please useio.scanbot:sdk-multitasktext-assets:X.X.X
instead. - Removed enum
BarcodeDensity
. - Removed property
codeDensity
fromBarcodeAdditionalParameters
. - Removed enum values
VALIDATE
andDECODE
fromGs1Handling
and replaced them byDECODE_STRUCTURE
,DECODE_FULL
,VALIDATE_STRUCTURE
andVALIDATE_FULL
. - 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.
- Removed ML assets library for Document Quality Analyzer -
- 🚙 Under the hood:
- Updated 3rd-party libraries:
- added
gs1-syntax-dictionary
lib
- added
Version 5.1.2 (27 Jun 2024)
- 🚀 Improvements:
- Improved detection of UPC/EAN barcode extensions in live mode.
- The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- 🐞 Bug fixes:
- Fixes a bug in
ScanbotColor
where settingisArgb
to true, resulted in a wrong color.
- Fixes a bug in
Version 5.1.1 (28 May 2024)
- 🎉 New:
- Added new property
barcodesRegexFilter
toBarcodeRecognizerConfiguration
for Barcode Scanner RTU UI v2 screen. - Added support of the new 'Find and Pick' barcode scanning mode, see
FindAndPickScanningMode
. - Added support for continuous scanning in the
BarcodeScannerView
composable. - Added new setter
setLiveDetectionParameters(parameters: EhicRecognizerParameters)
inHealthInsuranceCardScanner
to adjust the scanning process. - Added new setter
setRecognizerParameters(recognizerParameters: EhicRecognizerParameters)
inHealthInsuranceCardScannerConfiguration
to adjust the scanning process in EHIC scanner RTU UI screen. - Added support for new barcode format
BarcodeFormat.MICRO_PDF_417
. - Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added property
acceptedBrightnessThreshold
toContourDetector
to control the accepted brightness level for contour detection (same property added toDocumentScannerConfiguration
andFinderDocumentScannerConfiguration
in RTU UI andContourDetectorFrameHandler
). - Added new class
BarcodeTextLocalization
and new propertylocalization
toBarcodeScannerConfiguration
to support localized strings.
- Added new property
- 🚀 Improvements:
- The Health Insurance Card Recognizer now implements the new Scanbot OCR engine. The recognition is faster and more accurate than before.
- 🐞 Bug fixes:
- 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. - Fixed behavior of 'Update' Button in Manual Count Edit Dialog for Barcode Scanner RTU UI v2 screen.
- Fixed
- ⚠️ Breaking changes:
- Replaced the class
BarCodeFormattedResult
byGenericDocuments
class for barcode document parser output. - Added new classes for all the barcode document formats. See the API documentation for more details.
- All
HealthInsuranceCard
prefixes in result model class names were replaced withEhic
(EhicRecognitionResult
,EhicDetectionStatus
, etc.). - Deleted deprecated
isLicenseActive
andisLicenseValid
fromScanbotSDK
. Please uselicenseInfo.isValid
instead. - Renamed
ScanbotPalette
toPalette
for consistency with RTU UI v2 configuration classes. BarcodeExtensionsFilter
now accepts EAN and UPC barcodes with extensions only and all other formats without extensions.- Made the property
type: BarcodeFormat?
inio.scanbot.sdk.ui_v2.barcode.configuration.BarcodeItem
optional. - Changed the type of numeric parametric filter parameters from Float to Double.
- Changed default UI behavior in Barcode Scanner RTU UI v2. If
BarcodeMappedData.barcodeImage
inBarcodeItemMapper
is empty - placeholder image will be shown. IfBarcodeMappedData.barcodeImage
is set withBarcodeMappedDataExtension.barcodeFormatKey
constant - the barcode image will be displayed.
- Replaced the class
- 🚙 Under the hood:
- Updated 3rd-party libraries:
- libjpeg-turbo to 2.1.5.1
- libpng to 1.6.40
- libtiff to 4.6.0
- added zlib library
- Extracted parts of
ScanbotSDK
andScanbotBarcodeScannerSDK
API to theLicensableSdk
andBarcodeScanningSdk
interfaces. - Migrated project to AGP 8.x.
- Added more rules for R8 shrinker to work adequately with AGP >= 8.
- Fixed pro-guard rules for
DocumentQualityAnalyzer
. - Added an R8 consumer rule to keep the internals of
io.scanbot.core.processor.ImageProcessor
from shrinking/obfuscating. - Added
Theme.AppCompat.NoActionBar
theme as default for Barcode Scanner RTU UI v2 activity. - Added Consumer Proguard rules for RTU UI v2 modules.
- Updated 3rd-party libraries:
Version 5.0.1 (13 Mar 2024)
- 🐞 Bug fixes:
- Fixed a bug in the Generic Document Scanner which prevented the extraction of the given names as well as the valid from date from a residence permit card.
Version 5.0.0 (1 Mar 2024)
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Use
io.scanbot:rtu-ui-v2-bundle
module dependency to access the new screen. - Added new
ParametricFilters
inImageProcessor
API (ScanbotBinarizationFilter
,CustomBinarizationFilter
,ColorDocumentFilter
,BrightnessFilter
,ContrastFilter
,GrayscaleFilter
,WhiteBlackPointFilter
andLegacyFilter
). - Added support for German residence permits (2011 and 2019 formats) in
GenericDocumentRecognizer
. PdfConfig
in thePDFWriter
now allows setting the jpegQuality for images encoding. The parameter is only used when transcoding images (adding an image from a bitmap, or resample is true). The parameter is ignored when directly embedding JPEG files.- Added
resample
parameter inPdfConfig
and extended the meaning of thedpi
setting. - Added new constructor parameters
dpi: Int
andpageFit: PageFit
inPageConfig
class forPDFWriter
. - Added
setParametricFilter(parametricFilter: ParametricFilter)
method in DocumentScannerConfiguration for DocumentScanner RTU UI screen. - Added support of
minEstimatedNumberOfSymbolsForNoDocument
config parameter in DocumentQualityAnalyzer API.
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Use
- 🚀 Improvements:
- Optimized speed of the camera preview frames handling for all scanners.
- Optimized memory consumption for PDF rendering with encryption enabled.
- Text detection is faster and more accurate.
- Improved MRZ parser for a stronger rejection of outliers.
- Improved speed and quality of scanning for
GenericDocumentRecognizer
. - Changed touch to focus square in
ScanbotCameraXView
to a circle.
- 🐞 Bug fixes:
- For
BarcodeFormat.PDF_417
, a single case to generate clusters was not covered, which led to a crash. - Fixed potential crash when trying to embed invalid images in a PDF.
- Fixed issue with misaligned document polygon and barcode polygons on some devices with horizontal orientation.
- Fixed drawing of the detected document contour polygon in landscape orientation.
- Fixed NPE in MRZ scanning with optional fields.
- For
- ⚠️ Breaking changes:
- Changes in
ImageProcessor
API:ImageProcessor
is not a singleton anymore.- Removed
scanbotSDK.imageProcessor()
getter. Call one ofImageProcessor
constructors to create a new instance. - Removed old
process*(List<Operation>)
methods andOperation
classes. They are replaced withapplyFilter()
,rotate()
,crop()
,resize()
methods inImageProcessor
. CallImageProcessor#processedBitmap()
,ImageProcessor#encodedProcessedImage()
, orImageProcessor#saveProcessedImage(path: String)
to get the image result or to write it to a file. ImageFilterType
enum is deprecated. UseParametricFilter
API with new filters. Usage of old filters is still available withLegacyFilter
wrapper.ImageFilterTuneType
s are no longer supported. The class was deleted.
- Changes in
PageProcessor
API:PageProcessor
methods are also migrated to theParametricFilter
API.- Added
parametricFilters: List<ParametricFilter>
field inPage
class. It will be used in page processing by default. If it's empty, old legacy filter infilter: ImageFilterType
deprecated field will be used. - Removed
tunes
andfilterOrder
fields inPage
class.
- Deprecated
setImageFilterType(imageFilterType: ImageFilterType)
method in DocumentScannerConfiguration for the DocumentScanner RTU UI screen. - Removed
imageProcessorType(type: ImageProcessor.Type)
inScanbotSDKInitializer
. - In
TIFFImageWriterParameters
constructor replacedbinarizationFilter: ImageFilterType?
parameter withbinarizationFilter: ParametricFilter?
. - In
TIFFImageWriterParameters.defaultParametersForBinaryImages()
parameters changed the default filter toScanbotBinarizationFilter
parametric filter. - Renamed
RSS_14
barcode format toDATABAR
andRSS_EXPANDED
toDATABAR_EXPANDED
. BatchBarcodeScannerActivity
class from RTU UI v1 is now marked as 'Deprecated'.- Removed
BarcodeFormat.CODE_25
fromBarcodeFormat.COMMON_CODES
list. ZoomRange
can be created with any input values but will be limited under the hood by internalMIN_ZOOM
(x0.2) andMAX_ZOOM
(x100) values.
- Changes in
- 🚙 Under the hood:
- Added 3rd-party library "libzueci" to dependencies.
- Class
SoundController
was renamed toSoundControllerImpl
and interfaceSoundController
was extracted.
Version 4.2.0 (9 Jan 2024)
- 🎉 New:
- Added support for new barcode type
BarcodeFormat.GS1_COMPOSITE
. - Added analyzer image size limit property for Document Quality Analyzer. By default, the image will be resized to 2500 px.
- Added support for the Israelian Check standard.
- Added support for new barcode type
- 🚀 Improvements:
- Added more control over how to handle GS1 messages in barcodes. See
BarcodeScannerAdditionalConfig.setGs1HandlingMode
.
- Added more control over how to handle GS1 messages in barcodes. See
- 🐞 Bug fixes:
- Fixed the Camera Preview blinking after capturing a picture.
- ⚠️ Breaking Changes:
- The property
enableGS1Decoding
has been replaced by the enumGs1HandlingMode
inBarcodeScannerAdditionalConfig
. GS1
codes are now handled differently for various barcode types. Using the default optionPARSE
will give the same result as before for all barcode types, except ofRSS_EXPANDED
. Previously, forRSS_EXPANDED
, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, it is needed to choose the optionDECODE
.
- The property
Version 4.1.1 (1 Dec 2023)
- 🎉 New:
- Added support for Kuwait ID cards in the MRZ scanner.
- 🐞 Bug fixes:
- Fixed an issue with
acceptedSizeScore
config parameter forDocumentScannerActivity
andFinderDocumentScannerActivity
RTU screens.
- Fixed an issue with
- ⚠️ Breaking changes:
- Moved
setIgnoreBadAspectRatio()
logic fromDocumentAutoSnappingController
toContourDetectorFrameHandler
.
- Moved
Version 4.1.0 (23 Nov 2023)
- 🎉 New:
- Added new feature - Document Quality Analyzer. It analyzes the text quality (legibility) on images.
- Added new supported barcode formats -
BarcodeFormat.USPS_INTELLIGENT_MAIL
,BarcodeFormat.ROYAL_MAIL
,BarcodeFormat.JAPAN_POST
,BarcodeFormat.ROYAL_TNT_POST
,BarcodeFormat.AUSTRALIA_POST
andDATABAR_LIMITED
.
- 🚀 Improvements:
- Improved quality and speed of the Document Contour detector.
- Decreased size of Document Contour detector ML model.
- Removed parameter
forceCpu: Boolean
fromImageProcessor
methods. - Optimized default and custom preview/picture size selection in the
ScanbotCameraXView
. - Optimized
setForceMaxSnappingSize(enabled: Boolean)
behavior in theScanbotCameraXView
. - Improved pinch-to-zoom gesture in
ScanbotCameraXView
. - Added
setLifecycleOwner(lifecycleOwner: LifecycleOwner)
method for view controller inDocumentScannerView
andBarcodeScannerView
to improve compatibility with Compose UI.
- 🐞 Bug fixes:
- Added
setBarcodeFormatsFilter(barcodeFormat: List<BarcodeFormat>)
method inBatchBarcodeScannerConfiguration
class.
- Added
- ⚠️ Breaking changes:
- Renamed
OpticalCharacterRecognizer.EngineMode.TLDR
toOpticalCharacterRecognizer.EngineMode.SCANBOT_OCR
. - 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. - IMPORTANT! Removed deprecated
BlurEstimator
feature. UseDocumentQualityAnalyzer
instead.
- Renamed
- 🚙 Under the hood:
- Updated version of Nameof C++ library to v0.10.3.
- Disabled GPU acceleration for Redmi 9 models, Samsung Galaxy Grand Prime and devices with Android older than 6.tip
For additional details about the API, please refer to our API reference documentation.
Version 4.0.0 (26 Oct 2023)
- 🎉 New:
- New and improved document detector with better performance and less memory consumption.
- Added a 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 for non latin-based languages.
- New PDF renderer for simple PDF and "sandwiched" PDF generation.
- Added support for custom PDF metadata.
- Added support for portrait, landscape and auto page orientation.
- Extended list of supported page sizes (A3, A5, B4, B5, etc.)
- 🚀 Improvements:
- With the new ML-based OCR engine the speed of text recognition has increased twofold.
- 🐞 Bug fixes:
- Fixed some OOM crashes on low to midrange devices.
- Fixed potential crashes related to native code integration.
- Fixed bug with invisible back button on Document Scanner RTU UI screens when no 'Camera' permission was granted.
- 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
.
- ⚠️ Breaking changes:
- Changed the default OCR engine to the new TLDR OCR engine.
- Tesseract language traindata is no longer needed by default.
ScanbotSDKInitializer#prepareOCRLanguagesBlobs(true)
call is not needed for the TLDR OCR engine.- Tesseract engine mode can still be used with customization of OCR config
OpticalCharacterRecognizer#setOcrConfig(ocrConfig: OcrConfig)
. - Changed signature of
OpticalCharacterRecognizer#recognizeTextWithPdfFromUris()
andOpticalCharacterRecognizer#recognizeTextWithPdfFromPages()
methods -pageSize: PDFPageSize
was replaced with more detailedpdfConfig: PdfConfig
parameter.
- Changed signature of
PDFRenderer#renderDocumentFromImages()
andPDFRenderer#renderDocumentFromPages()
methods -pageSize: PDFPageSize
was replaced with more detailedpdfConfig: PdfConfig
parameter. - Removed
CameraModule.FRONT_MIRRORED
.CameraModule.FRONT
now behaves as mirrored mode.
- Changed the default OCR engine to the new TLDR OCR engine.
- 🚙 Under the hood:
- Added "libharu" library to dependencies.
- Removed "Android PDF Writer" library from dependencies.
- Upgraded OpenCV version to 4.8.
- Added "icu4c" library to dependencies.
Version 3.0.1 (12 Sep 2023)
- 🚀 Improvements:
- Fixed false positives for Code 39 and Codabar barcodes.
- Fixed potential memory leak in all RTU-UI screens.
Version 3.0.0 (23 Aug 2023)
- 🎉 New:
- New generation of Text Data Scanner component. The quality and speed of scanning has significantly improved.
- Added new component - VIN (Vehicle identification number) scanner.
- MRZ support for td1 long document standard.
- 🚀 Improvements:
- Decreased model size and increased speed for Text Data scanner.
- Fixed contour lines detection with ML Based detection.
- It is now possible to color each barcode on the barcode AR overlay. Use
barcodeScannerView.selectionOverlayController.setBarcodeAppearanceDelegate(delegate: BarcodePolygonsView.BarcodeAppearanceDelegate)
to manage polygon appearance. - It is now possible to color each barcode on the barcode AR overlay of
BarcodeScanAndCountView
. UseBarcodeScanAndCountView.counterOverlayController.setBarcodeAppearanceDelegate
to manage polygon appearance. - OCR quality for the Generic Text Line Scanner should be significantly more reliable.
- Reduced the number of barcode detector models from 3 to 2. The model used in Fast mode is now ~20% faster, about the same speed as Fastest mode.
- 🐞 Bug fixes:
- Removed conflicting "app_name" string resources from library modules.
- Fixed colors not being applied to fields in RTU UI of Generic Document recognizer.
- Fixed bug for
BarcodePolygonsStaticView
where it crashed ifbarcodeItemViewFactory
returnednull
instead of view. - Before, for certain invalid decodings of QR and MicroQR codes, an exception was thrown from ZXing. Now we rigorously treat this as a format error.
- Before, we have returned CODE_25 results when INDUSTRIAL_2_OF_5 was enabled and CODE_25 was disabled. Now, we do not return the CODE_25 result for such decoding options.
- Fixed the
topBarButtonsColor
option for theMrzScannerActivity
andHealthInsuranceCardScannerActivity
screens. - Potential fix for rare crash in ScanbotCameraXView during binding it to lifecycle.
- ⚠️ Breaking changes:
- Text Data Scanner no longer requires Tesseract OCR blobs.
- Text Data Scanner (both RTU UI component and classic) no longer accepts
TextFilterStrategy
and a set ofLanguage
parameters. The code that sets these needs no replacement and can be removed. - Changed the structure of
MRZGenericDocument
. Now it contains a document object for MRZ fields, the same as GenericDocument from GenericDocumentRecogniser. UseMRZGenericDocument.document.wrap() as MRZ
to get exact fields instead of a list of generic fields. - Removed methods from
BarcodePolygonsView
andBarcodeScannerView.selectionOverlayController
related to polygon and text view appearance. E.g.setStrokeColor
etc. Please useBarcodeAppearanceDelegate
instead! - Removed methods from
BarcodePolygonsStaticView
andBarcodeScanAndCountView.counterOverlayController
which were related to polygon appearance. E.g.setStrokeColor
etc. Please useBarcodeAppearanceDelegate
instead.
- 🚙 Under the hood:
- Removed
UNKNOWN
barcode type from the API as it is applicable only for internal use. - Fixed declaration of attributes
polygonStrokeDeclinedColor
andpolygonFillDeclinedColor
. - Text Data Scanner only depends on Tesseract for license plate scanning. For other purposes, Tesseract was removed.
- Removed
Version 2.3.0 (13 Jul 2023)
- 🎉 New:
- Added support for MicroQR codes.
- Added
setViewFinderEnabled
method toBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
. This toggles the visibility of the viewfinder. Defaults totrue
. - Introduced a scanned barcode confirmation dialog in
BarcodeScannerActivity
RTU screen, and a configuration classBarcodeConfirmationDialogConfiguration
inBarcodeScannerConfiguration
for modifying dialog UI. - Added Scan and Count of Barcodes feature. Use
BarcodeScanAndCountView
to integrate it into your app. - Introduced a new public interface,
PdfImagesExtractor
, for extracting images from PDF files. - Added a new implementation of
PdfImagesExtractor
andPdfPagesExtractor
based on the Pdfium library. Add the optional 'io.scanbot:bundle-sdk-pdfium:SDK_VERSION' dependency to use it.
- 🚀 Improvements:
- Stripped down the Android dynamic symbol table in native libraries. As a result, the size of the native shared libraries has decreased.
- Improved accuracy and detection speed of QR_CODE, Code39, and Code93 barcode types.
- Added support for inverted PDF-417 barcodes.
- Optimized the size of native libraries integrated into the Scanbot SDK.
- Enhanced error handling behavior when deleting SDK pages.
- Added a flag,
detectFromNv21(..., isLive: Barcode)
, inScanbotBarcodeDetector
to detect barcodes on NV21 images in the static image mode.
- 🐞 Bug fixes:
- Fixed a crash within the barcode detector.
- Corrected a typo in Libraries.txt.
- Fixed detection of a few false-positive RSS_EXPANDED in live mode.
- Fixed a bug causing incorrect (mirrored) preview when
CameraModule.FRONT
is set up forScanbotCameraXView
. - Fixed the logic in
setAutoSnapProgressEnabled
andsetPolygonAutoSnapProgressEnabled
methods inFinderDocumentScannerConfiguration
andDocumentScannerConfiguration
. - Fixed
TextDataScaner.textDataScannerStep
not applying from JSON configuration. - Fixed incorrect mapping of iOS-only parameter
shutterButtonIndicatorColor
inDocumentScanner
andFinderDocumentScanner
. - Corrected mapping of
userGuidanceStrings
JSON configuration forCheckRecognizerConfiguration
.
- ⚠️ Breaking changes:
- Corrected a typo in the
polygonAutoSnappingProgressStrokeColor
attribute name for PolygonView. - API breaking changes in the MRZ scanner result interface:
- Replaced
io.scanbot.mrzscanner.model.MRZRecognitionResult
MRZ Scanner result model class withio.scanbot.mrzscanner.model.MRZGenericDocument
. - Removed
fields: List<MRZField>
list andMRZField
class. All detected fields are now stored in thedocument: GenericDocument
field inMRZGenericDocument
instance asfields: List<Field>
list. - Added
mrzGenericDocument.document.wrap()
utility method, which returns a structured object (io.scanbot.genericdocument.entity.MRZ
) with MRZ-specific fields for easier access to the detected fields. - Removed
validCheckDigitsCount: Int
,checkDigitsCount: Int
,rawMrz: String
, andcheckDigits: List<MRZCheckDigit>
from the resulting model. All this data can be extracted from theGenericDocument
. - The
travelDocType: MRZDocumentType
is now represented by thedocumentType: MRZDocumentType
field in theMRZGenericDocument
instance.
- Replaced
- Date fields in the
MRZGenericDocument
result model now contain an unformatted date string. - Replaced
MRZDocumentType
class withMRZGenericDocument.MRZDocumentType
. - Removed deprecated
MultipleObjectsDetectorActivity
RTU UI screen. - Removed deprecated
MultipleObjectsDetector
andBusinessCardsImageProcessor
.
- Corrected a typo in the
- 🚙 Under the hood:
- Libraries.txt is now contained only in
package1
andpackage2
dependencies. - Improved attribute handling to support the generation of a single AAR.
- Blackview and Caterpillar brands are now excluded from GpuAcceleration-supported devices.
- Improved cross-platform parameter handling from the refactored configurations structure.
- Added an OPTIONAL 3rd-party open-source dependency: the Pdfium library (licensed under the Apache License Version 2.0). By default, the Pdfium library is NOT added to the Scanbot SDK dependencies.
- Libraries.txt is now contained only in
Version 2.2.0 (27 Apr 2023)
- 🎉 New:
- Added type
BarcodeFormat.CODE_25
that was previously considered as typeINDUSTRIAL_2OF5
without checksum. TheINDUSTRIAL_2OF5
checksum option is now removed and thus, depending on a valid checksum, we either returnINDUSTRIAL_2OF5
orCODE_25
. - Added new field settings in
DocumentScannerActivity.Result
. It contains the state of the screen options (e.g. autoSnapping, flashEnabled, etc). Since this class implements Parcelable, its instance can be saved and restored for the next scanning session. - A new machine-learning based machine-readable zone recognizer has been introduced.
- Portuguese ID cards (old and new format) can now be recognized by the MRZ scanners.
- Added type
- 🚀 Improvements:
- Added
BarcodeItemViewPositionHandler
that helps to adjust the position of the barcode description view in relation to the polygon contour. - Improved preview quality selection logic for
ScanbotCameraXView
. - Improved GenericDocumentRecognizerFrameHandler's
Rect
cropping logic when working withFinderOverlayView
. - Patient info box recognition has been improved in the medical certificate scanners.
- Stacked RSS barcode scanning has seen substantial improvements.
- Added
- 🐞 Bug fixes:
- Fixed a visual glitch with
ScanbotCameraXView
on Xiaomi devices, which happened before the preview started. - Fixed a bug where
ScanbotCameraXView
sometimes threwRejectedExecutionException
after the camera stopped.
- Fixed a visual glitch with
- ⚠️ Breaking changes:
- Changed structure of
MedicalCertificateRecognizerResult
:McInfoBoxSubType
renamed toCheckBoxType
.MedicalCertificateInfoBox
type split intoPatientInfoBox
andCheckBox
.MedicalCertificateInfoBox.patientInfoFields
property now available asMedicalCertificateInfoBox.patientInfoBox.patientInfoFields
.DateRecord.validationConfidenceValue
removed.
- Removed method
ScanbotSDKInitializer.prepareMRZBlobs()
. MRZ blobs must now be added as a separate module dependency in Gradle:implementation("io.scanbot:sdk-mrz-assets:<SDK_VERSION>")
. - Removed
MRZRecognitionResult.recognizedMRZLines
as it was replaced withMRZRecognitionResult.rawMrz
. - Removed parameter
decodeStacks1D
. The decoding of stacked barcodes is now handled automatically. FrameHandler
interface was converted to an abstract class. If you have custom FrameHandlers, please add constructor invocation to your FrameHandler implementation.- Some of the Scanbot SDK artifact IDs have been changed and need to be updated in your
build.gradle
'sdependencies
block:- for users of
io.scanbot:sdk-package-1
,-2
,-3
or-4
that use barcode scanning, the dependency ofio.scanbot:sdk-barcode-assets
should be updated toio.scanbot:bundle-sdk-barcode-assets
(NOTE: barcode standalone SDK users do not need to adjust anything in this case:io.scanbot:scanbot-barcode-scanner-sdk
and-sdk-ui
dependencies are to stay as is!) - all users of
io.scanbot:sdk-crypto-persistence
should change this dependency toio.scanbot:bundle-sdk-crypto-persistence
(or toio.scanbot:barcode-sdk-crypto-persistence
if you are using Scanbot Barcode standalone SDK)
- for users of
- Changed structure of
- 🚙 Under the hood:
- Enabled
-fstack-protector-all
on Android - Removed usage of
backward-cpp
library. - Removed outdated assets for MRZ detection.
- FrameHandlers won't return the result if
FrameHandler.isEnabled
is set tofalse
after actual frame detection. - We now append the
bundle-
orbarcode-
prefix to almost all of our SDK dependencies' names. The modules that have not been changed are those used by customers:rtu-ui-bundle
,scanbot-barcode-scanner-sdk
,scanbot-barcode-scanner-sdk-ui
,io.scanbot:sdk-package-1
,-2
,-3
and-4
modules, all*-assets
modules. The exception to this are modulesscanbot-barcode-assets
andscanbot-sdk-crypto-persistence
: these will have corresponding prefixes from now on, depending on what SDK they are being used for.
- Enabled
Version 2.1.0 (5 Apr 2023)
- 🎉 New:
- Added method
setRequiredAspectRatios()
to theDocumentScannerConfiguration
that allows you to specify the aspect ratios of the documents that will be automatically captured.
- Added method
- 🚀 Improvements:
- Fixed a bug for RTU-UI screens, when using JSON configuration with iOS string formatting patterns.
- Improved performance and accuracy of machine-readable-zone recognition.
- Improved
FinderOverlayView
behavior, when UI container is dynamically resized, e.g. on keyboard events, etc. - Added
setForceMaxSnappingQuality(enabled: Boolean)
inIScanbotCameraView
interface (implemented only on ScanbotCameraXView implementation): controls whether the camera should force the maximum possible quality of the snapped picture. As a result, the snapping speed could be significantly slower and the resulting image could be bigger. The default isfalse
. - Added
setSnappingAutoAdjustment(enabled: Boolean)
inIScanbotCameraView
(implemented only on ScanbotCameraXView implementation): controls whether the camera should apply the final image post-processing (e.g., switching to a low-light mode or HDR, applying face retouch, etc.). Implementation of post-processing depends on the vendor's implementation of Camera API. The default isfalse
.
- 🐞 Bug fixes:
- Fixed
EditPolygonImageView
bug with the coloring of lines on the polygon change. - Fixed Scanbot camera views not resolving
Context
correctly if used in Activity/Fragment with Hilt's@AndroidEntryPoint
annotation. - Fixed Scanbot RTU-UI scanners handling when the app is terminated in the background.
- Fixed a potential memory issue in the check recognizer.
- Fixed
- ⚠️ Breaking changes:
FinderAspectRatio
andPageAspectRatio
classes are now deprecated and merged intoAspectRatio
common class. Please useAspectRatio
instead.
- 🚙 Under the hood:
- Bump Dagger version to 2.44
- Update Kotlin library to 1.7.10
- Changed the default JPEG compression quality from 95 to 100 for
ScanbotCameraXView
. As a result, snapped images will be bigger but with the better quality
Version 2.0.0 (14 Feb 2023)
- 🎉 New:
- Added a new
automaticSelectionEnabled
option toSelectionOverlayConfiguration
forBarcodeScannerActivity
andBatchBarcodeScannerActivity
RTU UI screens
- Added a new
- 🚀 Improvements:
- The raw string is returned for RSS Expanded barcodes that don't contain a GS1 string
- Updated
BarcodeScannerAdditionalConfigBuilder
withdecodeStacks1D
andcodeDensity
parameters - Improved autosnapping animation in
PolygonView
- Eliminated the camera preview going black between
stopPreview()
andstartPreview()
calls inDocumentScannerActivity
RTU UI
- 🐞 Bug fixes:
- Fixed the
ScanbotCameraXView
instantiation error in Layout Editor - Fixed the memory leak of CameraManager in
ScanbotCameraXView
- Fixed NPE in the
ScanbotCameraXView
when thestartPreview()
function is called while theScanbotCameraXView
was detached - Fixed an issue with
InitialScanDelayMs
andDelayAfterScanMs
options not working inBarcodeScannerConfiguration
whenBarcodeImageGenerationType.CAPTURED_IMAGE
andBarcodeImageGenerationType.VIDEO_FRAME
output generation types were used - Fixed
ScanbotCameraXView
not working after reattaching to a window
- Fixed the
- ⚠️ Breaking changes:
- Removed deprecated
NfcPassportScanner
,PayFormScanner
andWorkflows
classical and RTU components together with all their configurations
- Removed deprecated
- 🚙 Under the hood:
- Update TensorFlow Lite to 2.10
- Improve allocated memory releasing mechanism for:
- European Health Insurance scanner
- License plate scanner
- Generic document scanner
- Data scanner
- MRZ scanner
- TIFF writer
- Multiple Objects detector
- Blur estimator
- TextOrientationScanner
Version 1.98.0 (11 Jan 2023)
- 🎉 New:
- Added support for two-sided 21b Medical Certificates with new checkbox types. See
McFormType.Form_21a_back
andMcInfoBoxSubtype
. - Added new parameter
decodeStacks1D
inBarcodeScannerAdditionalConfig
for Barcode Scanner. For stacked RSS barcodes, this should be set to the number of stacks with which the barcode was printed.
- Added support for two-sided 21b Medical Certificates with new checkbox types. See
- 🚀 Improvements:
- Improved recognition of inverted barcodes
- Improved performance and reduced false positive rate for stacked RSS barcodes
- Improved performance of DataMatrix and QR-codes
- Improved recognition of Medical certificates in general
- 🐞 Bug fixes:
- Fixed issues with MRZ on Mexican and US passports
- Fixed a crash when applying a filter to single channel images
- Fixed a crash on the detection of Health Insurance cards in some rare cases
- ⚠️ Breaking changes:
- Removed
intention
andinsuredPersonType
fields fromMedicalCertificateRecognizerResultInfo
- Removed enums
MedicalCertificateInsuredPersonType
andMedicalCertificateIntention
- Renamed
McBoxAccident
toMcBoxAccidentYes
andMcBoxRequiresCare
toMcBoxRequiresCareYes
inMcInfoBoxSubtype
- Removed
MrzBlobRuntimeException
as it cannot occur anymore
- Removed
- 🚙 Under the hood:
- Added third-party libraries (backward-cpp v1.6 and magic-enum v0.8.1)
Version 1.97.1 (18 Nov 2022)
- 🐞 Bug fixes:
- Fixed crashes on devices running Android 5 and 6 in some scenarios
- Fixed compatibility with 3rd party obfuscated libraries
- 🚙 Under the hood:
- Removed CommonsIo, CommonsCodec and CommonsLang dependencies
- Changed the package name to
io.scanbot.sdk.PUBLISH_ARTIFACT_ID
for the internal obfuscated classes - Improve allocated memory releasing mechanism for Barcode Scanner and Contour Detector
Version 1.97.0 (26 Oct 2022)
- 🎉 New:
- Added
setVibrationEnabled(enable: Boolean)
method to enable/disable the vibration feature inio.scanbot.sdk.util.snap.SoundController
class. NOTE:android.permission.VIBRATE
permission is required! - Added
bleepResId: Int
andbleepUri: Uri
parameters to theSoundController
class constructors to customize the bleep sound. By default the SDK specific sound will be played. - New barcode types are supported: IATA 2 of 5 and Industrial 2 of 5. Please, note that they are disabled by default. See
BarcodeFormat
BarcodePolygonsView
allows visualization of barcode contours when using classical components- Selection overlay layer based on
BarcodePolygonsView
can be enabled forBarcodeScannerView
viaBarcodeScannerView.selectionOverlayController.setEnabled
- Selection overlay can be enabled and configured for ready-to-use UI via
BarcodeScannerConfiguration.setSelectionOverlayConfiguration(...)
- New properties
InitialScanDelayMs
andDelayAfterScanMs
inBarcodeScannerConfiguration
allow delaying the initial scan and/or pausing the preview after scanning the barcode
- Added
- 🚀 Improvements:
- Improved crops and contours for detected barcodes
- Improved MRZ detection for US passports
- 🐞 Bug fixes:
- Fixed a bug with RTU Barcode scanner not being able to produce image of
BarcodeImageGenerationType.CAPTURED_IMAGE
when an instance ofIBarcodeFilter
is set.
- Fixed a bug with RTU Barcode scanner not being able to produce image of
- ⚠️ Breaking changes:
- Moved and renamed
io.scanbot.sdk.ui.utils.ScanBeeper
class from the RTU-UI module to the packageio.scanbot.sdk.util.snap.SoundController
in the basescanbot-sdk-1
module.
- Moved and renamed
- 🚙 Under the hood:
- For
ScanbotCameraXView
- whenCameraOpenCallback
is set - theonCameraOpened
method's call was moved later in the lifecycle: now called at the latest point in time when the camera preview is confirmed to be streaming. - Updated third-party libraries: Gson to 2.9.1, CommonsIo to 2.11.0 and CommonsCodec to 1.15
- For
Version 1.96.0 (08 Sep 2022)
- 🚀 Improvements:
- Improved accuracy and performance of the check recognizer.
- 🐞 Bug fixes:
- Fixed
ContourDetector
crash when assembled release with obfuscation on old AGP version.
- Fixed
- 🚙 Under the hood:
- Improve layouts for RTU UI screens
Version 1.95.0 (12 Aug 2022)
- 🎉 New:
- Each RTU UI configuration and
ScanbotSDKInitializer
class now containsfromJson(input: String)
andmodifyFromJsonConfiguration(<ScreenName>JsonConfiguration)
methods allowing to create or edit the configuration classes using JSON input. The format of the JSON string should be compatible with<ScreenName>JsonConfiguration
class - Added new configuration option
codeDensity
inBarcodeScannerAdditionalConfig
for Barcode Scanner - Added
codeDensity
configuration option for Barcode Scanner RTU UI screen
- Each RTU UI configuration and
- 🚀 Improvements:
- Added default images for
EditPolygonView
anchors and forMagnifierView
overlay image in classical components. - Added new insets API for the finder box:
finderInsets
allows setting the finder edge padding from the camera preview edges.safeAreaInsets
can add additional padding to the finder. This is particularly useful when part of the camera preview is covered by another widget (e.g. a navigation bar), thus preventing the finder from appearing behind this widget.
- Added configuration methods to
MedicalCertificateRecognizerConfiguration
that allow configuring the appearance of the medical certificate scanner's finder. Details inMedicalCertificateRecognizerConfiguration
API reference. - Added an option to force display the user guidance interface when manually snapping documents in
DocumentScannerActivity
. UseDocumentScannerConfiguration.setForceUserGuidance(true)
to enable this option.
- Added default images for
- 🐞 Bug fixes:
- The polygon's background color now displays correctly at the corners of the
PolygonView
in document detector screens - Fixed snapped page filtering in Document Scanner RTU UI screen
- Fixed incorrect preview size calculation after granting permission for legacy
ScanbotCameraView
- The system back gesture navigation was fixed on the
CroppingActivity
andEditPolygonImageView
- The polygon's background color now displays correctly at the corners of the
- ⚠️ Breaking changes:
- Changed the default Camera View to ScanbotCameraXView based on CameraX API in all RTU UI screens
- Removed
EngineMode.Legacy
support for Barcode Scanner ContourDetector
'sdetect
methods are now synchronized and return a newDetectionResult
entity. It incorporates all data related to contour recognition. Fields that were previously used to obtain this data have been deleted (polygon
,polygonF
,detectionScore
,verticalLines
,horizontalLines
)DetectionResult
class name changed toDetectionStatus
setFinderOffset
deleted. UsefinderInset
values instead
- 🚙 Under the hood:
- Updated
compileSdk
version to 31 - Updated Android CameraX version to 1.1.0
- Updated the version of kotlin std library to 1.6.21
- Updated the version of Dagger library to 2.41
- Updated Boost C++ version to 1.79.0
setFinderMinPadding()
works onfinderInsets
API
- Updated
Version 1.94.0 (13 Jun 2022)
- 🎉 New:
- Added
Fragment.registerForActivityResultOk
method for calling activity from fragments for subscribing to success result with the new Activity Result API. - Check recognizer:
- Introduced
CheckRecognizerActivity
RTU UI for the convenient use of our updated Check Recognizer SDK. - Added
setAcceptedCheckStandards(acceptedCheckStandards: ArrayList<RootDocumentType>)
method for Check filtering by standard inCheckRecognizer
. By default - empty list (all standards are accepted). - Added
returnImageOnSuccess: Boolean
parameter forrecognize(...)
andrecognizeWithFinderOverlay(...)
methods inCheckRecognizer
. By default -false
.
- Introduced
- With the new
BarcodeScannerView
andDocumentScannerView
Classical components, the integration of barcode scanning and document scanning with Custom UIs is now even easier!
- Added
- 🚀 Improvements:
- Added a cancellation interface for
PdfPagesExtractor
calls. Now you can cancel extracting pages from large PDFs and thus don't need to wait until the end of the process. Look for propertycancelCallback: LongOperationCancelCallback
insidefun pagesFromPdf(pdfFile, cancelCallback)
. - Beta: An improved Check Recognizer that now supports further bank layouts from different countries (e.g Kuwait, India, Australia). The recognizer is available as Classic and RTU UI components. Please note that this feature is still in beta. Furthermore, due to the renaming of the feature from "Cheque" to "Check", some classes and API methods have been renamed as well as new classes have been introduced. For more details please see the Breaking Changes.
- Added configuration methods to
MedicalCertificateRecognizerConfiguration
that allows configuring the medical certificate scanner finder appearance. Details inMedicalCertificateRecognizerConfiguration
API reference. - Fixed an issue with the NFC scanner not working for some devices, e.g. Xiaomi Mi10.
- Improved behavior of FinderOverlayView and its child classes. Now any Finder View can inject other layouts inside itself and these parts would be properly positioned with the finder window changes.
There are 3 customizable parts:
- top - is a zone above the finder window. Can be used for inserting some hints.
- bottom - is a zone below the finder window. Can be used for inserting some hints.
- center - is a zone inside the finder window. Can be used for showing an overlay inside the finder window.
- Added a cancellation interface for
- 🐞 Bug fixes:
- Fixed a crash on specific PDF-417 codes with boarding passes.
- Fixed an incorrect mapping of guidance strings for
MedicalCertificateRecognizerActivity
. - Fixed a potential crash in
ScanbotCameraXView
when taking a picture after the screen was paused.
- ⚠️ Breaking changes:
finder_description
view id is no longer used to place text views below the finder. Please use new API.- Check recognizer:
- All the Cheque components and packages renamed to Check (
chequescanner
tocheck
). - The ML blobs are now available as a separate library
io.scanbot:sdk-check-assets:$latestSdkVersion
. Please make sure to add it to your dependencies to be able to useCheckRecognizer
. - The obsolete method
ScanbotSDKInitializer#prepareChequeBlobs(prepareBlobs: Boolean)
was removed from the SDK API. CheckRecognizer
returnsCheckRecognizerResult
object with recognized data.
- All the Cheque components and packages renamed to Check (
Version 1.93.0 (07 Apr 2022)
- 🎉 New:
- New checkbox types are now supported for Medical certificates: McBoxRequiresCare, McBoxRequiresCareNo, McBoxAccident, McBoxAccidentNo, McBoxIntention, McBoxOtherAccident.
- 🚀 Improvements:
- Huge improvement on the speed and accuracy of 1D barcodes recognition.
- Native libraries size decreased by more than 20%
- If the medical certificate contains a barcode, the information contained in it will be merged with the printed information.
- 🐞 Bug fixes:
PDFRenderer
now properly handlescontent:\\
type uris.- By default, GPU acceleration has been enabled (issues with the Samsung S22 series devices are fixed).
- Fixed crash for calling
TIFFWriter
in release build variant version. - Fixed crash for calling
TextOrientationRecognizer
in release build variant version. - Fixed camera flash state for
DocumentScannerActivity
after picture is taken in multi-page mode. - Fixed cropped images of 1D barcodes.
- Fixed
Multi-Page
button state forMultipleObjectsDetectorActivity
.
- ⚠️ Breaking changes:
- Moved configuration of page for cropping screen from method to constructor
CroppingConfiguration(page)
. - Deprecated component
FilterPredictor
was removed. - Deprecated field
MRZCheckDigit.validatedString
was removed.
- Moved configuration of page for cropping screen from method to constructor
- 🚙 Under the hood:
- Updated the version of Leptonica library to 1.82.0
- Updated the version of JSON for Modern C++ library to 3.10.2
- Updated the version of BOOST C++ library to 1.75.0
- Updated the version of OpenCV library to 4.5.3
- Updated the version of Tesseract-ocr library to 4.1.3
- Updated the version of Nameof C++ library to 0.10.1
- Updated the version of LibTIFF library to 4.2.0
- Updated the version of ZXing-C++ library to 1.1.0
- Updated the version of OpenSSL library to 1.1.0h
- Updated the version of XNNPACK library to fb8d1f1b2 git commit
- Updated the version of TensorFlow library to 339ccc2b03 git commit
- Replaced the OpenJPEG library with libjpeg-turbo library 2.1.2
- Added the Skia library of 47b4b19 git commit
- Added the spdlog library of 1.9.2 version
- Document detector and Cropping functionality extracted to separate module rtu-ui-docdetector
Version 1.92.1 (11 Mar 2022)
- 🎉 New:
- Added new property
CroppingConfiguration.setSwapTopBottomButtons()
which allows swapping the top and bottom buttons.
- Added new property
- 🐞 Bug fixes:
- By default, GPU acceleration has been disabled (due to issues on the Samsung S22 series devices). To enable it, use
ScanbotSDKInitializer().allowGpuAcceleration(true)
. - Fixed an incorrectly thrown
FileAccessException
inScanbotSDKInitializer
when cleaning deprecated blob files.
- By default, GPU acceleration has been disabled (due to issues on the Samsung S22 series devices). To enable it, use
Version 1.92.0 (23 Feb 2022)
- 🎉 New:
- Introduced
MedicalCertificateRecognizerActivity
ready-to-use UI for an easy integration of the Medical Certificate Recognizer. - Added a new property
DocumentScannerConfiguration.enableHardwareSnapButton
that helps to set one hardware button to trigger a manual snap. By default Kotlin usesKeyEvent.KEYCODE_VOLUME_DOWN
but anyKeyEvent.KEYCODE
value can be set. - Added the possibility to replace the cancel button in most of the RTU UI top toolbars with an icon. Please check the
configuration.setCancelButtonIcon()
methods of the RTU configurations. - Added new methods
DocumentScannerConfiguration.setForceMaxSnappingSize()
andScanbotCameraXView.setForceMaxSnappingSize()
that force the maximum available snapping size and apply the same aspect ratio to the preview. Works only withScanbotCameraXView
or with CameraX enabled in the RTU UI. Disabled by default, thusScanbotCameraXView
shows a preview and makes snaps with an aspect ratio closest to the display's dimensions. - Added support for the GS1 barcode document format, see
Gs1Document
. - Added a class
BarcodeDocumentParser
to parse a string into a supported barcode document type. - Added a new method
GenericDocumentScannerConfiguration.setExcludedFieldTypes()
that can be used to set fields that should be excluded from the scanning process altogether, e.g. for security reasons.
- Introduced
- 🚀 Improvements:
- Improved the UX of the
DocumentScannerActivity
screen. Now theSnapFlashView
animation and the pausing of the preview happens only after the image was captured. Previously it could result in blurry images. - All the date fields returned by
GenericDocumentRecognizer
now have aValidationStatus
. Fields withValidationStatus = Invalid
will not be shown in the list of fields forGenericDocumentRecognizerActivity
. - Mark
ScanDisabilityCertificateWorkflowStep
as deprecated in order to replace it with the Medical Certificate ready-to-use scanner screen.
- Improved the UX of the
- ⚠️ Breaking changes:
- Fixed applying
DocumentScannerConfiguration.setCameraBackgroundColor()
forScanbotCameraXView
. - Removed unused parameters
setShouldSavePhotoImageInStorage
andsetShouldSaveSignatureImageInStorage
fromGenericDocumentRecognizerConfiguration
.
- Renamed the feature Disability Certificate Scanner to Medical Certificate Recognizer
- Renamed all related classes and package names with
DC
prefix toMedicalCertificate
prefix (likeio.scanbot.sdk.dcscanner.DCScanner
toio.scanbot.sdk.mcrecognizer.MedicalCertificateRecognizer
) - Renamed Medical Certificate recognizer assets library to
sdk-mc-assets
- Renamed the class
DisabilityCertificateDocument
in the barcode scanner toMedicalCertificateDocument
. All related classes and paths that containDisabilityCertificate
are also renamed toMedicalCertificate
. - Removed methods
detectAndRecognizeMcJpeg(...)
anddetectAndRecognizeMcBitmap(...)
fromMedicalCertificateRecognizer
. UserecognizeMcJpeg(..., shouldCropDocument: Boolean = true, returnCroppedDocument: Boolean = true, recognizePatientInfo: Boolean = true, recognizeBarcode: Boolean = true)
andrecognizeMcBitmap(..., shouldCropDocument = true, ...)
instead. - Removed outdated parameters
width: Int
andheight: Int
inMedicalCertificateRecognizer#recognizeMcJpeg(...)
- Replaced the usage of internal class
io.scanbot.mcscanner.model.MedicalCertificateRecognizerResultInfo
with publicly available classio.scanbot.sdk.mcrecognizer.entity.MedicalCertificateRecognizerResult
in all Medical Certificate classical components
- Renamed all related classes and package names with
- Fixed applying
- 🚙 Under the hood:
- Removed the usage of Fragments from all RTU UI screens.
Version 1.91.0 (14 Jan 2022)
- 🎉 New:
- New layouts of German ID cards are now supported
- Added
fun setMinFocusDistanceLock(lock: Boolean)
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
for RTU UI screens to lock in the minimum supported camera focus distance (supported only with CameraX) - Added
fun lockMinFocusDistance(lock: Boolean)
inIScanbotCameraView
to lock in the minimum supported camera focus distance (supported only with CameraX) - New option
lowPowerMode: Boolean
inBarcodeScannerAdditionalConfiguration
forBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
for RTU UI screens andScanbotBarcodeDetector
classical component
- 🐞 Bug fixes:
- Fixed a bug that led to incorrect clearing of the scanned documents in
GenericDocumentRecognizerActivity
- Initial flash button state on opening
GenericDocumentScanner
screen will have the same state as was set through the configuration - Fixed an issue when AutoSnapping controllers, that were set up after the camera preview start, were not working
- Fixed a crash in
TextDataScannerActivity
on some rare cases while restarting the app from recent apps to this screen
- Fixed a bug that led to incorrect clearing of the scanned documents in
- 🚀 Improvements:
- Significantly improved recognition of Aztec barcodes
- Added method
setFinderMinPadding
to theFinderOverlayView
, making it possible to change this value programmatically rather than only from XML
Version 1.90.1 (22 Dec 2021)
- 🚀 Improvements:
- Improved robustness and performance of the MRZ scanner
Version 1.90.0 (15 Dec 2021)
- 🎉 New:
- Added Scanbot implementation of AndroidX Activity Result API to every RTU UI activity. See documentation for desired RTU component here.
- Added properties
textWithExtension
andmetadata
toBarcodeItem
to support barcode extensions of UPC and EAN barcodes - The results screen of the
BatchBarcodeScannerActivity
now displaystextWithExtension
instead oftext
- Added new boolean flag
enableNativeLogging
(by default - false) inScanbotSDKInitializer#withLogging(useLog: Boolean, enableNativeLogging: Boolean)
method - Support for barcode scanner results filtering in RTU-UI barcode scanning components
- Added 2 implementations of
IBarcodeFilter
interface -BarcodeFilter
andBarcodeExtensionsFilter
- New setters
setBarcodeFilter(barcodeFilter: IBarcodeFilter)
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
for RTU UI screens - Added
setPreviewFrameSize(frameSize: Size)
andsetAnalyzerFrameSize(frameSize: Size)
methods inScanbotCameraXView
for more flexible camera frame size modifications
- 🐞 Bug fixes:
- Fixed a crash in the barcode detector with Legacy engine mode on stable images
- Fix incorrect preview size resolving which caused the impossibility to perform scanning with the legacy ScanbotCameraView on some budget devices
- Fix inconsistent polygon displaying on some horizontally-oriented devices
- Fix photo-saving callback being ignored for NFC Passport Scanner configuration
- 🚀 Improvements:
- Improved recognition of small barcodes on large images
- Improved recognition of stacked RSS Expanded (GS1) barcodes
- Improved rectangular DataMatrix performance
- Increased performance on stable images with PDF-417 barcodes
- If the Scanbot SDK is not initialized, RTU UI screens are force closed without the RuntimeException
- ⚠️ Breaking changes:
- Renamed
setPreviewSize(previewSize: Size)
tosetCameraFrameSize(frameSize: Size)
inScanbotCameraXView
- Constants
RESULT_LICENSE_INVALID
,CANCELLATION_REASON_TIMEOUT
,SCANNED_BARCODE_EXTRA
,SCANNED_BARCODE_IMAGE_PATH_EXTRA
,SCANNED_BARCODE_PREVIEW_FRAME_PATH_EXTRA
,SNAPPED_PAGE_EXTRA
,EDITED_PAGE_EXTRA
,EXTRACTED_FIELDS_EXTRA
,WORKFLOW_EXTRA
,WORKFLOW_RESULT_EXTRA
,SNAPPED_OBJECTS_EXTRA
were deleted. Instead we have implemented AndroidX Activity Result API for RTU UI components. Also - if you prefer to stick with deprecatedstartActivityForResult
approach - we have added utility methods that incapsulate all the verbosity of getting the result entity from the activity's resultBundle
. Please see the documentation for the desired RTU UI component here.
- IdCardScanner
- Removed deprecated
IdCardScanner
and all the classes related to it. Consider usingGenericDocumentRecognizer
instead
- Removed deprecated
- Blur Estimator:
- The ML blobs are now available as a separate library
io.scanbot:sdk-blur-assets:$latestSdkVersion
. Please make sure to add it to your dependencies to be able to useBlurEstimator
- The obsolete method
ScanbotSDKInitializer#prepareBlurEstimatorBlobs(prepareBlobs: Boolean)
was removed from the SDK API.
- The ML blobs are now available as a separate library
- Renamed
- 🚙 Under the hood:
- Updated the version of CWAC Camera library to 0.6.42
Version 1.89.1 (30 Nov 2021)
- 🐞 Bug fixes:
- Fixed a bug for when
BatchBarcodeScannerActivity
ignored the parameter passed tobatchBarcodescannerConfiguration.setCameraModule()
- Fixed a bug for when
Version 1.89.0 (5 Nov 2021)
- 🎉 New:
- Added
allowGpuAcceleration(enable: Boolean)
method inScanbotSDKInitializer
which enables GPU acceleration for TensorFlow ML models - Added
precompileGpuMlModels(precompilingCallback: () -> Unit)
method inScanbotSDKInitializer
which performs GPU ML models precompilation
- Added
- 🐞 Bug fixes:
- Fixed a bug in
BatchBarcodeScannerActivity
andMultipleObjectsDetectorActivity
for when they don't show the camera preview after the camera permission approval - Fixed a bug when
BarcodeScannerActivity
does not detect any barcodes with the image generation type VIDEO_FRAME - Fixed possible crash with Barcode Scanner activities after the camera permission request
- Fixed a bug in
- 🚙 Under the hood:
- Updated 3rd party libraries used in SDK, see [[Open Source Libraries in Scanbot SDK]]
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 inIScanbotCameraView
- Ready to Use UI components now can use CameraX under the hood. Use ScanbotSDKInitializer.useCameraXRtuUi(true) to enable it
startPreview()
andstopPreview()
methods are available forScanbotCameraXView
as well- A new filter type
PURE_GRAYSCALE
is now available for the image processing. It is similar toGRAYSCALE
, but without additional contrast and dynamic range optimizations
- A new method
- 🚀 Improvements:
- Improved flexibility, speed, and accuracy of the EHIC Scanner (European Health Insurance Cards)
ScanbotCameraXView
now uses better preview quality by defaultScanbotCameraXView
performance was optimized
- 🐞 Bug fixes:
- Fixed long initialization of
ScanbotCameraXView
on foldable devices
- Fixed long initialization of
- ⚠️ 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 useHealthInsuranceCardScanner
recognizeX
anddetectAndRecognizeX
methods were merged inrecognizeX
setValidationType
was removed. Now the country is detected directly from the card- Parameters
width
andheight
were removed fromrecognizeJPEG
method as redundant - Method
recognize
was renamed torecognizeNv21
- Enum value
FAILED_VALIDATION
was replaced withINCOMPLETE_VALIDATION
inHealthInsuranceCardDetectionStatus
- The ML blobs are now available as a separate library
- IdCardScanner
- Removed deprecated IdCardScanner RTU screen (
IdCardScannerActivity
). Consider usingGenericDocumentRecognizerActivity
instead - Removed deprecated
IdCardScannerConfiguration
. Consider usingGenericDocumentRecognizerConfiguration
withGenericDocumentRecognizerActivity
instead
- Removed deprecated IdCardScanner RTU screen (
- HealthInsuranceCardScanner
- 🚙 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 inScanbotSDKInitializer
allowing to control whether the XNN pack optimizations should be used (true
by default)
- A new flag
- 🐞 Bug fixes:
- Fixed
MSI_PLESSEY_CHECKSUM_ALGORITHMS
,STRIP_CHECK_DIGITS
andCAMERA_ZOOM
parameters being ignored in BatchBarcodeScannerConfiguration
- Fixed
- ⚠️ Breaking changes:
- The
corner_radius
attribute of FinderOverlayView was renamed tosbsdk_corner_radius
- The
Version 1.87.0 (3 Sep 2021)
- 🎉 New:
- Added
PdfPagesExtractor
class that can extract pages from a PDF as Sdk'sPage
, or convert them to JPEGs and write to a specified Uri. CheckscanbotSdk.createPdfPagesExtractor()
.
- Added
- 🚀 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 theBarcodeItem
now contains correct information about the contours of the detected barcodes
- Improved recognition of the front side of ID cards by
- 🐞 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 theBarcodeItem
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 containsPageImageSource
allowing to check if the source image was captured automaticallyPictureCallback
now contains information if the image was captured automatically- Added a new method
takePicture(acquireFocus: Boolean, isCapturedAutomatically: Boolean)
inIScanbotCameraView
which should be called withisCapturedAutomatically = true
from a custom AutoSnappingController - Added method
setAnchorPointColor(@ColorInt color: Int)
allowing to change the color of draggable points of the cropping polygon inCroppingActivity
component andEditPolygonView
- Additional parameter
stripCheckDigits: Boolean
inBarcodeScannerAdditionalConfig
forBarcodeDetector
classical component - Additional parameter
stripCheckDigits: Boolean
inBarcodeScannerAdditionalConfiguration
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
inPictureCallback
was replaced toCaptureInfo
which contains the orientation of the image and if it was captured automatically - IMPORTANT! Added
create
prefix to names of all the methods inScanbotSDK
andScanbotBarcodeScannerSDK
, that return new instances of scanners, processors or storages. Methods without this prefix returnSingleton
objects. - IMPORTANT! Classical component
BusinessCardsImageProcessor
is no longer singleton! You should get your instance from SDK, configure it and use it as needed. CallingScanbotSDK(this).createBusinessCardsImageProcessor()
elsewhere will return a new instance of this component with default config Reference
andHint
fields in SEPA barcode document type were replaced byPurpose
andRemittance
to match the specification
- The parameter
- 🚙 Under the hood:
- Updated 3rd party libraries used in SDK (see Third-party Libraries)
Version 1.85.1 (5 Jul 2021)
- 🎉 New:
- Added a new callback in
EditPolygonImageView
allowing to handle the dragging state. SeeEditPolygonDragStateListener
- Added a new callback in
- 🐞 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
inBarcodeScannerConfig
forScanbotBarcodeDetector
. By defaultScanbotBarcodeDetector
usesEngineMode.NextGen
based on a new ML model - Added new RTU config method
setEngineMode(engineMode: EngineMode)
inBarcodeScannerConfiguration
. 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
- Fixed incorrect toolbar color on
- ⚠️ Breaking changes:
- Removed
disableMlDetector
config parameter inBarcodeScannerConfig
. UseEngineMode.LegacyFast
instead. - Removed
BarcodeDetectorType
class andsetDetectorType()
method from Barcode RTU screens. UsesetEngineMode(engineMode: EngineMode)
instead. - Removed unused parameters
width: Int
andheight: Int
fromdetectFromJpeg(jpeg: ByteArray, frameOrientation: Int)
method inScanbotBarcodeDetector
- Removed
- 🚙 Under the hood:
- New third-party libraries: xsimd, xtl und xtensor (see Third-party Libraries)
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>
inBarcodeScannerAdditionalConfig
forBarcodeDetector
classical component - Additional parameter
msiPlesseyChecksumAlgorithms: EnumSet<MSIPlesseyChecksumAlgorithm>
inBarcodeScannerAdditionalConfiguration
for RTU UI screens - Added new parameter to the
SdkLicenseInfo
classlicenseStatusMessage: String?
- Added a new supported barcode format
- 🚀 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 useDCScanner
. - 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
- The ML blobs are now available as a separated library
- IMPORTANT! Classical components
TIFFWriter
,MRZScanner
,BlurEstimator
,PayFormScanner
,ChequeScanner
,DCScanner
,HealthInsuranceCardScanner
andMultipleObjectsDetector
are no longer singletons! You should get your instance from SDK, configure it and use it as needed. CallingScanbotSDK(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 inHealthInsuranceCardScanner
- Changed signature of the
handleLicenceStatusError
method inIScanbotSDKLicenseErrorHandler
. Added additional parametererrorMessage : String
- Marked as deprecated
reinitWithValidationType(validationType: HealthInsuranceCardValidationType)
method inHealthInsuranceCardScanner
- Disability Certificate Scanner:
Version 1.83.2 (20 May 2021)
- 🚀 Improvements:
- Optimized memory consumption and performance of
GenericDocumentRecognizer
andIdCardScanner
- Optimized memory consumption and performance of
Version 1.83.1 (18 May 2021)
- 🚀 Improvements:
- Improve the false positive rate for
GenericDocumentRecognizer
- Improve the false positive rate for
- 🐞 Bug fixes:
- Fixed
TiffWriter
on 32-bit devices
- Fixed
- 🚙 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 usingGenericDocumentRecognizer
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. CallingScanbotSDK(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. CallingScanbotSDK(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. CallingScanbotSDK.idCardScanner()
elsewhere will return a new instance of this component with default config - Refactor RTU's
NfcPassportScanningResult
entity: make corresponding fields of type Int
- IMPORTANT! Classical component
- 🚙 Under the hood:
- Switched from using
org.jetbrains:annotations
toandroidx.annotation:annotation
- Improved FinderView behaviour in RTU
BarcodeScannerActivity
screen layout - Updated third-party libraries used in SDK (see Third-party Libraries)
- Switched from using
Version 1.82.0 (21 Apr 2021)
- 🎉 New:
- Added a new option
setOpticalZoomRange(zoomRange: ZoomRange)
inIScanbotCameraView
- Added two new options
setCameraZoomFactor(zoomFactor: Float)
andsetCameraZoomRange(zoomRange: ZoomRange)
inBarcodeScannerConfiguration
forBarcodeScannerActivity
RTU screen - Added
gs1DecodingEnabled
parameter inBarcodeScannerAdditionalConfig
andBarcodeScannerAdditionalConfiguration
to disable the decoding of FNC1 characters in CODE128 barcodes
- Added a new option
- 🚀 Improvements:
- Initialization parameters for
AESEncryptedFileIOProcessor
(key: SecretKey?
,initializationVector: ByteArray
,salt: ByteArray
anditerationCount: Int
) became public.
- Initialization parameters for
- ⚠️ Breaking changes:
- Method
setSignificantShakeDelay
inLicensePlateScannerConfiguration
as well assignificantShakeDelay
field inTextDataScannerStep
are now ofLong
type - Renamed
ImageFilterType.ML_BASED_BINARIZATION
(filter for low-contrast documents with heavy shadows) toImageFilterType.SENSITIVE_BINARIZATION
- Method
- 🚙 Under the hood:
FilterPredictor
instance is no longer a singleton. Each timeScanbotSDK.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 ofBarcodeDocumentFormat
and filter out others automatically - Added
minimumTextLength
,maximumTextLength
,minimum1DQuietZoneSize
params forScanbotBarcodeDetector
asBarcodeScannerAdditionalConfig
entity. - Added new method
setBarcodeScannerAdditionalConfiguration
for RTUBarcodeScannerConfiguration
to set theminimumTextLength
,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>)
inIdCardScanner
- Added a new configuration option
setAcceptedDocumentTypes(acceptedDocumentTypes: List<IdScanResult.DocumentType>)
inIdCardScannerConfiguration
for RTUIdCardScannerActivity
- Added a new configuration option
setSharpnessAcceptanceFactor(sharpnessAcceptanceFactor: Float)
inIdCardScannerConfiguration
for RTUIdCardScannerActivity
- Added a new configuration parameter
accessibilityConfiguration
forDocumentScannerActivity
andCroppingActivity
allowing to set hints for the screen reader
- Now it is possible to set
- 🚀 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
andBusinessCardsImageProcessor
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
- Fixed calculation of the visible rectangle for
- ⚠️ 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 settingcontourDetectorType
inScanbotSDKInitializer
and exclude the module with assets byexclude 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 packageio.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. CallingScanbotSDK(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
andBarcodeDetectorFrameHandler
- code should be updated to use newsetConfig
andmodifyConfig
methods andBarcodeScannerConfig
entity. - Now the
prepareGenericTextRecognizerBlobs
call inScanbotSDKInitializer
is redundant for the usage of the Data Scanner SDK CheckableTextView
was removed from the SDK. Consider the usage ofCheckedTextView
from Android SDK instead
- ML-based document detection is now used by default. Therefore the dependency on
- 🚙 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
- Removed barcode format
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
inTIFFWriter
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 toOpticalCharacterRecognizer
- Added an additional parameter to the methods
- 🚙 Under the hood:
- Optimized delay handling between camera frames in
BarcodeDetectorFrameHandler
- Optimized delay handling between camera frames in
Version 1.79.0 (08 Feb 2021)
- 🎉 New:
IdScanResult
fromIdCardScanner
now has additionalmrzFields
andmrzCheckDigits
which are extracted automatically if the MRZ was detected on the document
- 🚀 Improvements:
- Massive improvements in the quality of the
IdCardScanner
- Massive improvements in the quality of the
- 🐞 Bug fixes:
MRZScanner
now recognizesKindOfDocument
,PINCode
,LanguageCode
,VersionNumber
fields correctly. Previously they were detected asUnknown
- ⚠️ Breaking changes:
- A call to
.prepareIdCardScannerBlobs(true)
method inScanbotSDKInitializer
was removed. Now it is not needed to prepare the blobs for the usage ofIdCardScanner
and only requires a gradle dependency
- A call to
- 🚙 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 toScanbotPDFRenderer
- Added additional parameter in method
renderDocumentFromImages(imageFileUris: List<Uri>, sourceFilesEncrypted: Boolean = false, pageSize: PDFPageSize): File?
inPDFRenderer
class for support of encrypted source images. - Added additional parameter in methods
recognizeTextFromUris(imageFileUris: List<Uri>, sourceFilesEncrypted: Boolean = false, languages: Set<Language>): OcrResult
ansrecognizeTextWithPdfFromUris(imageFileUris: List<Uri>, sourceFilesEncrypted: Boolean = false, pageSize: PDFPageSize, languages: Set<Language>): OcrResult
inOpticalCharacterRecognizer
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
- Further fixes for the "double scan" issue with the RTU UI
Version 1.77.1 (12 Jan 2021)
- 🐞 Bug fixes:
- Fixed a concurrency issue (
RejectedExecutionException
) for the frame handling inCameraView
- Fixed a double scan issue for
BarcodeScannerActivity
RTU screen - Fixed a
ShutterButton
animation
- Fixed a concurrency issue (
Version 1.77.0 (17 Dec 2020)
- 🎉 New:
OpticalCharacterRecognizer
now has arecognizeTextFromBitmap
method which allows to run OCR process on a bitmap- Added Front Facing Camera support (BETA). Call
setCameraModule(CameraModule.FRONT)
inScanbotCameraView
orScanbotCameraXView
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 overloadedremoveAll(pageIds: List<String>)
method: deletes all files for pages with given IDs - Improved detection of ITF barcodes
- Enhance
- 🐞 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 toio.scanbot.sdk.tiff
- In TIFFWriter class
binarize
- option was replaced withbinarizationFilter: ImageFilterType
option which accepts only binarization filters - Changed package name
io.scanbot.sdk.ui.view.camera.configuration.WorkflowScannerConfigurationParams
toio.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
andBatchBarcodeScannerActivity
now support a possibility to set a timeout viasetAutoCancelTimeout
method in seconds. You will getCANCELLATION_REASON_TIMEOUT
= true as an extra forRESULT_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 useScanbotBarcodeDetector
. - The obsolete method
ScanbotSDKInitializer#prepareBarcodeScannerBlobs(prepareBlobs: Boolean)
was removed from the SDK API.
- The ML blobs are now available as a separated library
- 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
- DC scanner uses barcode scanner under the hood, so it is also needed to add a dependency on
- Barcode Scanner:
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
- New configuration parameter
Version 1.75.4 (18 Nov 2020)
- 🐞 Bug fixes:
- Fixed
WorkflowScannerActivity
not picking given colors and texts configuration
- Fixed
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
- Fixed a bug when
- 🚙 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
- Fixed
Version 1.75.0 (29 Oct 2020)
- 🎉 New:
- Added
FinderPictureCallback
that automatically crops the visibleFinderOverlayView
zone and fix an orientation of the snapped image
- Added
- 🚀 Improvements:
- Changed
PictureCallback
implementation - it is an abstract class that implementsBasePictureCallback
interface - Improved recognition of barcodes when scanning matrix barcodes from a short distance
- Changed
- 🐞 Bug fixes:
- Fix possible crash in
SimpleOcrPerformer
when no text data detected on the image - Added the "force fetch" mechanism for
ScanbotBarcodeDetector
ML blobs.
- Fix possible crash in
- 🚙 Under the hood:
- Update compile SDK of the library to 29
Version 1.74.2 (16 Oct 2020)
- 🐞 Bug fixes:
- Make
IdCardTextFieldResult
fields fromIdCardScannerActivity
public
- Make
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 (seeZoomFinderOverlayView
) - Consumer proguard rules are now integrated into the library
- New animations during the document detection and page snapping.
- Snapped
Page
s in RTUDocumentScannerActivity
andWorkflowScannerActivity
are stored in the temp directorydraft_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 withCleaner#cleanUpAllDraftPagesData()
. - New parameter
ocrResolutionLimit
in the configuration forGenericTextRecgonizer
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 theImageFilterType.BACKGROUND_CLEAN
(a filter to remove a noise on the background). The usage of those filters requires setting the initialization property toScanbotSDKInitializer.imageProcessorType(ImageProcessor.ML_BASED)
and a new gradle dependency IdCardScanner
now has anorientation
parameter for thescanBitmap
methodIdCardScanner
now has anacceptedSharpnessScore
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 setIdCardScannerFrameHandler
now has ashouldRecognize
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'sClass
to save passport photo in a secure way. See example FormattedBarcodeDataMapper
'sDEFAULT
implementation was removed.null
is new default value forBatchBarcodeScannerActivity.newIntent
method instead. See example
- Introduce
- 🚀 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. SeehintTitle
andhintTitleColor
properties inCroppingConfiguration
- Added a view with a hint for
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
- Fixed the use of
- 🚙 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 getMRZRecognitionResult
from it
- Now it is possible to parse a string with MRZ data with
- 🐞 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
- Fixed overlapping buttons on
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 theIdCardScanner
- New RTU UI screen
🚀 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
- Fixed a crash in
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
anddcFormType
are available in the result of the DC certificate scanning
- Introduce
🐞 Bug fixes:
- Removed outdated field
EditPolygonImageView.DEFAULT_POLYGON
- Removed outdated field
Version 1.70.4 (17 Jul 2020)
- 🐞 Bug fixes:
- Fixed animation bug in
AdaptiveFinderOverlayView
- Fixed animation bug in
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. Useio.scanbot.sdk.persistence.Page
instead for all classes available from Scanbot SDK. - Refactor auto-snapping components, renamed
AutoSnappingController
toDocumentAutoSnappingController
Removed classes:
- Removed deprecated
io.scanbot.sdk.ocr.process.TextRecognition
fromScanbotSDK
instance - Removed deprecated
io.scanbot.sdk.docprocessing.DocumentProcessor
fromScanbotSDK
instance as deprecated - Removed deprecated
io.scanbot.sdk.docprocessing.draft.DraftExtractor
fromScanbotSDK
instance as deprecated - Removed deprecated
io.scanbot.sdk.persistence.PageFactory
fromScanbotSDK
instance as deprecated
- Removed deprecated
Version 1.70.2 (8 Jul 2020)
- 🎉 New:
- Beta: Blurriness estimator
BlurEstimator
- Added new barcode format
BarcodeFormat.MSI_PLESSEY
- Beta: Blurriness estimator
Version 1.70.1 (17 Jun 2020)
- 🐞 Bug fixes:
- Fixed nullability for return values for
ChequeRecognizer
,ContourDetector
andMRZRecognizer
- Fixed possible crash in
EditPolygonView
. If you are using this classical component, it is highly recommended to update from 1.70.0
- Fixed nullability for return values for
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
forImageProcessor
- (BETA) New
ScanbotCameraXView
with CameraX-based implementation ofScanbotCameraView
- 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 theandroid
block, right afterbuildTypes
, add the following snippet to your build.gradle file:
- Added ability to scan multiple barcodes in a row with the new RTU UI Component
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
andMrzScannerActivity
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, useprocessBitmap()
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 aContourDetectorFrameHandler
⚠️ Moved classes:
- Moved document processing classes from
net.doo.snap.process
package toio.scanbot.sdk.docprocessing
- Moved
net.doo.snap.ui.MultiplePolygonsView
toio.scanbot.sdk.ui.multipleobjects.MultiplePolygonsView
- Moved OCR feature classes from
net.doo.snap.process
package toio.scanbot.sdk.ocr.process
- Moved
net.doo.snap.process.util.DocumentDraft
toio.scanbot.sdk.entity.DocumentDraft
- Moved
net.doo.snap.ui.EditPolygonImageView
toio.scanbot.sdk.ui.EditPolygonImageView
- Moved
net.doo.snap.ui.MagnifierView
toio.scanbot.sdk.ui.MagnifierView
- Moved
net.doo.snap.ui.PolygonView
toio.scanbot.sdk.ui.PolygonView
- Moved
net.doo.snap.camera.AutoSnappingController.AutoSnappingCallback
toio.scanbot.camera.BaseAutoSnappingController.AutoSnappingCallback
- Moved document processing classes from
⚠️ Renamed packages:
- Renamed
net.doo.snap.lib.detector
package toio.scanbot.sdk.core.contourdetector
- Renamed
net.doo.snap.payformscanner
package toio.scanbot.sdk.payformscanner
- Renamed
io.scanbot.payformscanner.model
toio.scanbot.sdk.core.payformscanner.model
- Renamed
net.doo.snap.mrzscanner
package toio.scanbot.sdk.mrzscanner
- Renamed
net.doo.snap.dcscanner
package toio.scanbot.sdk.dcscanner
- Renamed
net.doo.snap.chequescanner
package toio.scanbot.sdk.chequescanner
- Renamed
net.doo.snap.intelligence
package toio.scanbot.sdk.ocr.intelligence
- Renamed
net.doo.snap.entity
toio.scanbot.sdk.entity
- Renamed
net.doo.snap.persistence
tpio.scanbot.sdk.persistence
- Renamed
net.doo.snap.blob
toio.scanbot.sdk.blob
- Renamed
net.doo.snap.util
toio.scanbot.sdk.util
- Renamed
net.doo.snap.intelligence
toio.scanbot.sdk.intelligence
- Renamed
net.doo.snap.camera
toio.scanbot.sdk.camera
- Renamed
io.scanbot.barcodescanner.model.BarCodeScannerDocumentFormat
toio.scanbot.barcodescanner.model.BarCodeFormattedResult
- Renamed
io.scanbot.sdk.entity.Page
toio.scanbot.sdk.entity.PageEntity
- Renamed
⚠️ Removed classes:
- Removed deprecated classes
net.doo.snap.ScanbotSDK
andnet.doo.snap.ScanbotSDKInitializer
. Please use the equivalent classes from the packageio.scanbot.sdk.*.
- Removed deprecated methods in class
io.scanbot.sdk.core.contourdetector.ContourDetector
. Please useImageProcessor
instead. See [[Image processing and Filters]] for more details.
- Removed deprecated classes
Version 1.61.1 (8 Jun 2020)
- 🚀 Improvements:
- The behavior of Detect/Reset buttons on the
CroppingActivity
was improved
- The behavior of Detect/Reset buttons on the
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
) forHealthInsuranceCardRecognizer
- 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
andOperation
chains mechanism for the image processing - Added Tunes for Image Filters
- Added
shutterSoundEnabled
configuration option forDocumentScannerActivity
andWorkflowScannerActivity
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, useScanbotBarcodeDetector.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
andScanbotBarcodeDetector.BarcodeDetectorType#ZXing
detectors
- 🐞 Bug fixes:
- Fixed the live-detection for
ChequeScanner
- Fixed the live-detection for
Version 1.56.3 (14 Jan 2020)
- 🐞 Bug fixes:
- Fixed the camera issue in RTU UI
DocumentScannerActivity
.
- Fixed the camera issue in RTU UI
Version 1.56.2 (13 Dec 2019)
- 🐞 Bug fixes:
- Fixed the compatibility issue with
kotlin-kapt
.
- Fixed the compatibility issue with
Version 1.56.1 (12 Nov 2019)
- 🐞 Bug fixes:
- Re-enabled XML drawables support for the
MagnifierView
.
- Re-enabled XML drawables support for the
Version 1.56.0 (25 Oct 2019)
- 🚀 Improvements:
- MRZ Scanner: Added all checkdigits in MRZ result as additional fields - see
MRZRecognitionResult.checkDigits
.
- MRZ Scanner: Added all checkdigits in MRZ result as additional fields - see
- 🐞 Bug fixes:
- Fixed NPEs in the
EditPolygonImageView
when trying to use it without theMagnifierView
. - 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).
- Fixed NPEs in the
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.
- Support for further TIFF compressions like CCITTFAX4, ADOBE_DEFLATE, etc. See the enum
- Added new features in
- 🚀 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 parametersTIFFImageWriterParameters
- e.g.writeTIFFFromFiles(List<File> sourceFiles, File targetFile, TIFFImageWriterParameters parameters)
.
- Deprecated some methods like
- Improved API of the
- 👉 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.
- 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.
- Added a new image filter
- ⚠️ Breaking Changes:
- The API of the
BarcodeScanningResult
class has changed a little. It now contains multiple results as a list ofBarcodeItem
s.
- The API of the
- 🐞 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
.
- Removed dependencies to the deprecated library
- 🐞 Bug fixes:
- Removed permission
READ_PHONE_STATE
used in a sub library of the Scanbot SDK.
- Removed permission
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.
- Added a new config property in the RTU UI Document Scanner Component:
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(..)
inDisabilityCertificateRecognizer
as an alternative detection approach to therecognizeDCBitmap(..)
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
- Check out the example app camera-view-aspect-ratio-finder
- Implemented new image filter types
IMAGE_FILTER_OTSU_BINARIZATION
,IMAGE_FILTER_DEEP_BINARIZATION
andIMAGE_FILTER_EDGE_HIGHLIGHT
- Implemented new feature "Required Aspect Ratios" in Classical Components to restrict document detection to given aspect ratios
🚀 Improvements:
- Improved recognition of pay cheques (
ChequeScanner
)
- Improved recognition of pay cheques (
🐞 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.
- AndroidX: Since AndroidX fully replaces the Android Support Libraries (
🚀 Improvements:
- Support for
RGBA_F16
Bitmaps (https://developer.android.com/reference/android/graphics/Bitmap.Config#RGBA_F16). Auto conversion to compatible Bitmaps. - Updated some third-party libs to the latest versions (e.g. Kotlin 1.3.0, etc).
- Cleaned up some dependencies to avoid potential conflicts on implementation.
- Support for
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)
- Small fixes in
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)"
)
- The config parameter
- 🐞 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 filemrz.xml
), which is included in the SDKio.scanbot:sdk-package-3
and can be fetched viablobManager.fetch(blobFactory.mrzCascadeBlob(), false)
!
- All MRZ Scanner and Recognizer components (
Version 1.35.0 (10 Sep 2018)
- 🎉 New:
- Cheque Scanner - Real-time extraction of account & routing number
- Added a new config parameter
rotateButtonHidden
for the RTU UICroppingActivity
- ⚠️ 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())...
).
- Affects the image files created by all RTU UI components, like
- 🐞 Bug fixes:
- MRZ Recognizer: fixed extraction of the field
dateOfBirth
from some French ID cards
- MRZ Recognizer: fixed extraction of the field
- 🚀 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 ofdeu.traineddata
!
Version 1.33.3 (19 Jul 2018)
- Removed
allowBackup
flag in AndroidManifest.xml inio.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
andio.scanbot.sdk.ScanbotSDK
Version 1.31.2 (21 Jun 2018)
- Several fixes in
io.scanbot.sdk.ScanbotSDKInitializer
andio.scanbot.sdk.ScanbotSDK
Version 1.31.1 (18 Jun 2018)
- Added functionality to apply a real orientation lock in
ScanbotCameraView
. Use the new methodscameraView.lockToLandscape(boolean lockPicture)
orcameraView.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
.- ⚠️ Please note: In August 2019, Google Play Store will require that new apps and app updates with native libraries provide 64-bit versions in addition to their 32-bit versions. (https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html)
- We strongly recommend to upgrade the Scanbot SDK for Android to the latest version to benefit from the full support of
arm64-v8a
libs.
- 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.
- Published a new package
- 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 packageio.scanbot.sdk
. (e.g.net.doo.snap.ScanbotSDKInitializer
=>io.scanbot.sdk.ScanbotSDKInitializer
,net.doo.snap.ScanbotSDK
=>io.scanbot.sdk.ScanbotSDK
, etc.)
- Deprecated some classes in the
Version 1.28.7
- Added
setIgnoreBadAspectRatio(boolean ignoreBadAspectRatio)
method for theAutoSnappingController
. - 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
toMagnifierView
, which allowing to enable/disable bounding ofMagnifierView
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 asEditPolygonImageView
, but have to have the same aspect ratio.
Version 1.28.2
- Removed deprecated attributes
magnifierCrossSize
,magnifierCrossStrokeWidth
,magnifierStrokeWidth
andeditPolygonMagnifier
fromMagnifierView
since they don't have any effects on the view. To customize theMagnifierView
please use the attributesmagnifierImageSrc
,magnifierRadius
andmagnifierMargin
.
Version 1.28.1
- Exposed the method
setImageRotation()
inMagnifierView
.
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 forBitmap
s 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)
andcameraView.setAutoFocusSound(boolean enable)
methods inScanbotCameraView
- 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)
andPageFactory#buildPage(byte[] image)
methods forPage
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 inDetectedFrame
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 withIllegalStateException
afteronPause
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
withMagnifierView
was working only as part of anActivity
. - 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 ofContourDetector.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.
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 afteronPause
.
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.
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get your free Trial LicenseWhat do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.