Changelog

[4.0.0-beta11] - 2020-11-26

  • [iOS] Fix localization of “Detect” text in ScanFlow module.
  • [iOS] Remove the beta modifier in Framework’s SDK version as this doesn’t respect the semantic versioning required by CFBundleShortVersionString. Instead of v4.0.0-beta11, the framework’s version will be 4.0.0 even for beta versions.
  • [Android] Simplify the API of the ScanFlow result: you don’t need to use ImageStore to get the file path of the images.

[4.0.0-beta10] - 2020-11-24

  • [Flutter] Fix missing iOS frameworks.

[4.0.0-beta9] - 2020-11-23

  • [iOS] Further simplify the GSKCameraSession API: you don’t have to call setup on it anymore, the GSKCameraViewController will call it at the appropriate time.
  • [iOS] Add SDK version as part of the Framework Info.plist.
  • [iOS] Rewrite Custom Demo in Swift.
  • [core] Improve stability of image detection.

[4.0.0-beta8] - 2020-11-13

  • [Android] Rename ImageType into FilterType.
  • [iOS] Simplify API of the GSKCameraSession. The session doesn’t require a GSKScanProtocol/GSKScanFactory, and will simply return a GSKScan object with the new scan. See GSKCustomDemo for an updated implementation reference.
  • [iOS] Prevent crash if a concave quadrangle is passed to the GSKDocumentProcessor. Instead, an error will be returned by the processor.
  • [iOS] ScanFlow: Add padding around user guidance labels.

[4.0.0-beta7] - 2020-11-06

  • [Android] Fix ScanProcessor behavior when no perspective correction should be done.
  • [Android] Fix rotation of empty quadrangle.
  • [Cordova] iOS: Fix plugin that included incorrect headers.

Improved ScanFlow UI

We’ve simplified the ScanFlow module to 2 main screens: a Camera screen, and a Post-processing screen, from which one can change the filter and edit the cropping area of the current page.

Also, the batch scanning mode has been changed: after validating a page on the post-processing screen, the user is brought back to the Camera screen. Hitting the Done button validates the scanned pages and terminates the flow. Hitting the Cancel button cancels the entire scan flow after a confirmation.

[4.0.0-beta6] - 2020-10-26

  • [iOS/Android] Smoother real-time display of the detected document.
  • [React Native] Android: Remove tag from plugin manifest resulting in a warning while building your project.

[4.0.0-beta5] - 2020-10-23

  • [iOS, Android] Improve the document processor API to avoid confusing parameter combinations.

Edge Cleaning

Edge cleaning is a powerful enhancement that cleans up the edges of the documents. Often, after you crop a document, some artifacts are left on the edges of the document. The edge cleaning cleans them up. This results in a cleaner document and helps with the accuracy of the OCR step.

[3.0.26] - 2020-10-19

  • [Core] Accelerate perspective correction
  • [Android] Fix a crash happening on Android 11 when performing perspective correction

[4.0.0-beta4] - 2020-10-14

  • [Android] Add ability to set an additional camera frame processing. A onPreviewFrame method has been added to the CameraManager.Callback.

[4.0.0-beta3] - 2020-10-07

Best filter detection

The Best filter detection algorithm, which takes an image as input and returns the best filter to apply to this image, has been completely changed. It used to return only two outputs: Black & White or Photo. It now has 4 outputs:

  • None when the image does not contain a document
  • Black & White for text documents with very little color
  • Color for text documents with some color
  • Photo when the document contains mainly graphic parts and little text

Other changes

  • [Android] Revert incorrect renaming of the UI package in the Core module
  • [Core] The document detection now returns an empty quadrangle when no document has been detected on the image. A full quadrangle is returned when the detected document fills the entire image (e.g. no crop is needed).

[4.0.0-beta2] - 2020-10-05

  • Fix documentation and demo apps

[4.0.0-beta1] - 2020-10-02

You will find the Android and iOS documentation for this beta version in the software archive of this release. It also contains the native libraries and demo apps.

Document detection

Document detection has been entirely rewritten using deep learning and a new interface is now available for Android and iOS.

On Android, instead of using GeniusScanLibrary.detectFrame(path), you need to build a CnnDocumentDetection object and call one of the detectDocument methods on it. Similarly, on iOS, instead of using [GSK detectQuadrangleFromImage:imageOutOfCamera options:0], use the GSKDocumentDetector class and the detectQuadrangle* methods.

Scan processor

A new interface is also available for the different scan processing operations such as perspective correction, filtering and distortion correction. A single call is now needed to process an image and get a clean and readable document.

On Android, the corresponding methods have been removed from the GeniusScanLibrary class and have been replaced by a ScanProcessor class. On iOS, the GSKDocumentProcessor class replaces previous methods from GSKCore.

Image filters

The different image filters (Photo, Color, Black and White, Monochrome) have also been rewritten from scratch using novel algorithms to improve the quality and readability of the scanned documents. This results in a better removal of shadows, a correction of the colored tint that appears on some documents because of ambient light, and a better treatment of colors in text documents.

Monochrome filter and smaller PDF files

We’ve made several changes to optimize the size of PDF files created with the SDK. When using the Monochrome filter, you have the ability to save the output as monochrome 1-bit PNG images. Resulting PDF files using these PNG images are up to 10 times smaller.

Other changes

  • [Cordova ReactNative Flutter] iOS: Change the output format to match the documentation. Now, the scans and the generated PDF all have a URL in the form file:///path/to/file.ext.

[3.0.25] - 2020-10-01

  • [Android] Add support for Android 11
  • [Cordova] Fix Ionic documentation

[3.0.24] - 2020-08-24

  • [PDF] Add ability to set creation and last update dates of PDF files metadata.
  • [UI] Fix bug where current page was saved when the validation dialog was canceled.
  • [Core] Android: Properly throw an exception in perspective correction when quadrangle is invalid.
  • [Core] iOS: Fix crash in perspective correction when two vertices of the quadrangle are really close.

[3.0.23] - 2020-07-21

  • [UI] Improve translations, mainly in Turkish.
  • [Android] Keep symbols in AARs to be able to track crashes (eg with Firebase Crashlytics). This shouldn’t result in bigger APKs since native symbols are stripped when built in Release mode.

[3.0.22] - 2020-07-15

  • [OCR] Improve error reporting in TextLayoutToTextConverter.
  • [UI] Improve German localization.
  • [UI] iOS: Add cancel button when picking an image from the Photos or scanning directly from a URL.
  • [UI] iOS: Prevent conflict between interactive pop gesture and dragging to adjust the document’s detected edges.

[3.0.21] - 2020-07-13

  • [Android] Core: ScanFragment now checks if its parent fragment implements CameraCallbackProvider, not only its parent activity.
  • [iOS] Fix crash with 64-bit images.
  • [OCR] Fix TextLayoutToTextConverter issue on some images with no text.

[3.0.20] - 2020-07-06

  • [Android] Fix a Proguard issue regarding TextLayoutToTextConverter class

[3.0.19] - 2020-06-23

  • [Android] Fix dependencies of Maven artifacts
  • [UI] Android: Fix a minor issue closing a dialog that was causing an error being logged
  • [UI] Android: Fix Camera screen on devices with a 16:9 camera
  • [OCR] Add a TextLayout to Text converter to convert OCR result into a legible text

[3.0.18] - 2020-05-12

  • [iOS] SDK is now built with Xcode 11.4.1.
  • [Flutter, RN, Cordova] Fix Android dependency (Bolt Tasks) that was causing a crash

[3.0.17] - 2020-05-05

  • [OCR] Remove preprocessed parameter. This parameter let the caller specify that the image was already preprocessed for OCR and that the SDK didn’t need to reprocess it. The OCR stack will now always preprocess images for optimal results. The caller doesn’t have the ability to prevent that anymore.
  • [UI] Fix some translations
  • [UI] Android: optimize bitmap loading, especially for devices with a very large resolution camera

[3.0.16] - 2020-04-22

  • [Core] Fix regression introduced in 3.0.15 where the PDF generation was broken if the images were resized during PDF generation.
  • [OCR] Report error rather than crashing if language files are missing.

[3.0.15] - 2020-04-21

  • [Core] Drastically reduce memory usage during PDF creation.

[3.0.14] - 2020-04-06

  • Internal changes only

[3.0.13] - 2020-03-31

  • [OCR] Improve quality of OCR for non-preprocessed images.

[3.0.12] - 2020-03-17

Changed

  • [Cordova] Make plugin compatible with Capacitor

[3.0.11] - 2020-03-06

Changed

  • [Flutter] Android: Fixed our plugin to work with the new plugin embedding system (for apps created with Flutter 1.12 and above)

[3.0.10] - 2020-01-10

Changed

  • [OCR] Android: Improve interface and include a preprocessing step if requested. OcrProcessor should now be used.
  • [ReactNative] Android: Fix jpegQuality and pdfMaxScanDimension that were Double values instead of integers.

[3.0.9] - 2019-11-29

Changed

  • [Core] Android: Improve detectWarpEnhance method that takes a Bitmap as input and rename it to process now that it also handles distortion correction.

[3.0.8] - 2019-11-07

Changed

  • [Flutter] Improve integration of the plugin on Android, it’s no longer needed to edit an app’s android/build.gradle file to include the plugin native libraries.
  • [Flutter] Android: Fix crash when onActivityResult wasn’t called with this plugin request code.

[3.0.7] - 2019-10-21

Changed

  • [Core] Improve the robustness of the distortion/curvature correction

Added

  • [UI] Add a parameter jpegQuality to set the JPEG quality of scanned pages
  • [UI] Add a parameter pdfMaxScanDimension to reduce size of pages before PDF generation

[3.0.6] - 2019-10-02

Changed

  • [iOS] Prevent scan 180° rotation when iPhone is tilted upside down.
  • [Flutter] Android: Migrate to AndroidX
  • [Cordova] Android Support library version can now be passed as parameter when adding the plugin.
  • [Android] Remove the unneeded permission WRITE_EXTERNAL_STORAGE from manifest since SDK only writes to app specific directory.

[3.0.5] - 2019-09-19

Added

  • [iOS] ScannerUI: the status bar color now automatically adapts to the chosen background color’s contrast (https://www.w3.org/WAI/ER/WD-AERT/#color-contrast).

Changed

  • [Flutter] Android: Fix return of setLicenceKey method. An error with message java.lang.IllegalStateException: Reply already submitted was logged before this fix.

[3.0.4] - 2019-09-12

Changed

  • [iOS] Fix link issue by exposing some missing symbols

[3.0.3] - 2019-08-28

Added

  • [Flutter] Add a Flutter plugin using the UI module of the SDK on pub.dev

Changed

  • [Flutter/iOS] Fix a crash when canceling the scan flow
  • [Android Cordova ReactNative] Parameter name imageUrl has been changed into image. This parameter still expects the image URL and not the image itself.
  • [Android] UI: Fix visibility of a class to be able to access individual pages in scan flow result

[3.0.2] - 2019-07-31

  • [iOS] Fixed missing symbol in GSKScannerUI framework. This was resulting in a linker error when trying to access the GSKScannerUI results as individual scans (GSKScannerUIScan).

[3.0.1] - 2019-07-22

Changed

  • [Android] UI: Default multiPage to true
  • [ReactNative] Ensure compatibility of plugin with ReactNative 0.60

[3.0.0] - 2019-07-09

As of this release, the native SDK and the cross-platform plugins will be versioned under the same version number

Added

  • [Android, iOS] Add a new “Scanner UI” module that allows to start a customizable capture flow with 3 screens in one command
  • [Android, iOS] Add a new “Simple demo” app that shows how to use the Scanner UI module
  • [Android] Split SDK into 3 libraries (AAR): gs-sdk (core scanning methods and PDF generation), gs-sdk-ocr (text and layout extraction from an image), gs-sdk-ui (simple scan flow UI)
  • [iOS] Split SDK into three frameworks: GSSDK, GSSDKScannerUI and GSSDKOCR
  • Add localization into 10 new languages
  • [iOS] Utils: Add methods to rotate and fix orientation of an image
  • [iOS] Utils: Add method to scale an image

Changed

  • [ReactNative, Cordova] Switched to using the new SDK Scanner UI module
  • [iOS] API: Improved documentation
  • [iOS] API: Cleaned up API for Swift
  • [iOS] Camera UI: Redesigned shutter button
  • [iOS] Camera UI: Added animation when document is detected
  • [iOS] API: Renamed filters Color -> Photo, Whiteboard -> Color
  • [Android] UI: Fix shutter button not animating after camera permission dialog.

Removed

  • [Cordova, ReactNative] Removed support for title, password for the generated PDF file
  • [iOS] Removed distortion correction from iOS native demo

[ReactNative_2.5.2] - 2019-06-10

Changed

  • [Android] Fixed setLicenceKey method which was not returning properly

[ReactNative_2.5.1, Cordova_2.5.1] - 2019-05-07

Changed

  • [Cordova, ReactNative] Fixed typos in UI
  • [Cordova, ReactNative] Android: Fixed layout issue

[ReactNative_2.5.0, Cordova_2.5.0] - 2019-04-30

Changed

  • [Cordova, ReactNative] Android: Page format for PDF generation is FIT rather than A4
  • [Cordova, ReactNative] Android: PDF title is used for filename, in addition to PDF metadata
  • [Cordova, ReactNative] Android: Image type was incorrectly detected on original image, instead of warped image

Added

  • [Cordova, ReactNative] Document detection status
  • [Cordova, ReactNative] Scan functions now return original image Uri, in addition to enhanced image

[2.4.2] 2019-03-07

Added

  • [Android] Made focus before trigger optional

Changed

  • [iOS, Android] Improved OCR progress report (was between 0 and 70, should be between 0 and 100 now)
  • [Android] Improved speed of OCR

[2.4.1] 2019-03-05

Changed

  • [Android] Correctly throw exception when SDK initialized with incorrect license key
  • [Android] Support landscape camera screen
  • [iOS] Fix AutoTrigger flag that couldn’t be disabled

[2.4] [ReactNative_2.4.2, Cordova_2.4.2] 2019-02-27

Added

  • [iOS, Android] Added OCR. Ability to extract text and layout from an image and generate PDF documents with this text information to make it searchable and selectable.
  • [iOS] Added distortion correction to demo
  • [React] Added ability to specify “ENHANCEMENT_NONE” to avoid filter phase
  • [React] Added cancel button on iOS camera screen
  • [React] Added automatic photo trigger on Android

Changed

  • [Cordova] Compatibility with android-cordova >= v7.0.0

[2.3.4] 2019-02-20

[2.3.3] 2019-01-29

Added

  • [iOS, Android] Added distortion correction
  • [Android] Added support x86_64 architecture

Changed

  • [iOS] Fixed crash with B&W images (#274)
  • Improved exceptions handling (eg license check) (#280)
  • [Android] Upgraded to Android P
  • [Android] Upgraded OpenCV to 3.4.3

[ReactNative_2.4.1] 2018-12-05

Changed

  • [React] Fixed wrong method name to set license key

[ReactNative_2.4.0] 2018-12-05

Added

  • PDF generation with generatePDF
  • Selecting an enhancement type by default with defaultEnhancement option

Changed

  • [iOS] Fix crash on ipad when clicking “Edit” button
  • [Android] Fix error when activity result code too long

  • [iOS] Bump minim version to iOS 11. Removed armv7 armv7s and i386 architectures.

[2.3.2] 2018-08-22

  • [Android] Fixed export in demo for Android 7 and above

[2.3.1] 2018-07-25

  • [iOS] Fixed resize of scaled image
  • [Android] Added Auto Trigger to demo
  • [Cordova] Added upgrade instructions to doc

[2.3] 2018-11-07

  • [iOS] Added Auto Trigger to demo app
  • [Android] Camera is released in an async task
  • [ReactNative] Added plugin and demo
  • [Cordova] Breaking changes:
    • Licence needs to be set via setLicence
    • scan is now scanImage
    • New method to scan from camera scanCamera

[2.2] 2018-06-26

  • [iOS] Fixed empty Apple documentation
  • [iOS] On iPad, changed picture orientation to be based on UI instead of sensors
  • [Android] Breaking change
    • ScanFragment is now a fragment from the Support library, instead of a native fragment
  • [Android] SDK is now published to our Maven repository on S3

[2.1.9] 2018-03-06

  • [Android] Fixed Proguard

[2.1.8] 2018-02-27

  • [Android] Fixed logging, especially to notify that SDK is not initialized
  • [Cordova] Changed demo app to use image instead of camera in simulator
  • [Cordova] Upgraded SDK, added docs for Plugman and Ionic

[2.1.7] 2017-01-31

  • [iOS] Reduced size of SDK: footprint of Universal IPA according to App Thinning Report (~ 500 KB)
  • [iOS] Removed need for adding OpenCV dependency to Podfile
  • Updated READMEs

[2.1.6] 2017-01-18

  • Added timer to allow tests for a minute without a license

[2.1.5] 2017-01-08

  • [iOS] Added support for bitcode and Xcode 9.2

[2.1.10] 2018-04-03

  • Improved enhancement of shadows in B&W
  • [iOS] Added Appledoc
  • [Android] Changed preview to stop after each picture is taken
  • [Cordova] Added translations: de, en, es, fr, it, ja, pt-BR, ru, zh-Hans, zh-Hant

© 2020 The Grizzly Labs, Inc. All rights reserved.