Posted by Thomas Ezan – Sr. Developer Relations Engineer; Chengji Yan, Penny Li – ML Equipment Engineers; David Miro Llopis – Product Supervisor
We’re excited to announce the launch of the ML Equipment Doc Scanner API. This new API makes it simple so as to add superior doc scanning capabilities with a high-quality and constant consumer interface to your Android app. The ML Equipment Doc Scanner API allows your customers to rapidly and simply digitize paper paperwork.
Like the opposite ML Equipment APIs, the ML Equipment Doc Scanner API lets you seamlessly combine options powered by Machine Studying (ML) with none ML information.
Why Doc Scanner SDK?
Regardless of the digital revolution, paper paperwork and printouts are nonetheless current in our on a regular basis life. A few of our most essential paperwork are nonetheless bodily (identification paperwork, receipts, and so forth.).
The ML Equipment Doc Scanner API presents a number of advantages, together with:
- A high-quality and constant consumer interface for digitizing bodily paperwork.
- Correct doc detection with exact nook and edge detection for a seamless scanning expertise and optimum scanning outcomes.
- Versatile performance permits customers to crop scanned paperwork, apply filters, take away fingers, take away stains and different blemishes and ship digitized recordsdata in PDF and JPEG codecs again to your app.
- On-device processing helps protect privateness.
- An entire resolution eliminating the necessity for digicam permission.
The ML Equipment Doc Scanner API is already utilized by Google Drive Android software and the Google Pixel Digital camera.
Google Drive
Get began
The ML Equipment Doc Scanner API requires Android API stage 21 or above. The fashions, scanning logic, and UI movement are dynamically downloaded by way of Google Play companies so the ML Equipment Doc Scanner API has a minimal impression in your app dimension.
To combine it in your app, begin by configuring the scanner choices and getting a scanner consumer:
val choices = GmsDocumentScannerOptions.Builder()
.setGalleryImportAllowed(false)
.setPageLimit(2)
.setResultFormats(RESULT_FORMAT_JPEG, RESULT_FORMAT_PDF)
.setScannerMode(SCANNER_MODE_FULL)
.construct()
val scanner = GmsDocumentScanning.getClient(choices)
Then register an ActivityResultCallback to obtain the scanning outcomes:
val scannerLauncher = registerForActivityResult(StartIntentSenderForResult()) {
consequence -> {
if (consequence.resultCode == RESULT_OK) {
val consequence =
GmsDocumentScanningResult.fromActivityResultIntent(consequence.information)
consequence.getPages()?.let { pages ->
for (web page in pages) {
val imageUri = web page.getImageUri()
}
}
consequence.getPdf()?.let { pdf ->
val pdfUri = pdf.getUri()
val pageCount = pdf.getPageCount()
}
}
}
}
Lastly launch the doc scanner exercise:
scanner.getStartScanIntent(exercise)
.addOnSuccessListener { intentSender ->
scannescannerrLauncher.launch(IntentSenderRequest.Builder(intentSender).construct())
}
.addOnFailureListener { ... }
To get began with the ML Equipment Doc Scanner API, go to the documentation. We are able to’t wait to see what you’ll construct with it!