Wednesday, June 29, 2022
HomeiOS DevelopmentCapturing Textual content inside Picture Utilizing Reside Textual content API and SwiftUI

Capturing Textual content inside Picture Utilizing Reside Textual content API and SwiftUI


Final yr, iOS 15 got here with a really helpful characteristic referred to as Reside Textual content. You’ll have heard of the time period OCR (quick for Optical Character Recognition), which is the method for changing a picture of textual content right into a machine-readable textual content format. That is what Reside Textual content is about.

Reside Textual content is built-into the digicam app and Images app. When you haven’t tried out this characteristic, merely open the Digital camera app. While you level the gadget’s digicam at a picture of textual content, one can find a Reside Textual content button on the lower-right nook. By tapping the button, iOS mechanically captures the textual content for you. You’ll be able to then copy and paste it into different functions (e.g. Notes).

It is a very highly effective and handy options for many customers. As a developer, wouldn’t it’s nice in case you can incorporate this Reside Textual content characteristic in your personal app? In iOS 16, Apple launched the Reside Textual content API for builders to energy their apps with Reside Textual content. On this tutorial, let’s see easy methods to use the Reside Textual content API with SwiftUI.

Allow Reside Textual content Utilizing DataScannerViewController

Within the WWDC session about Capturing Machine-readable Codes and Textual content with VisionKit, Apple’s engineer confirmed the next diagram:

avfoundation-and-vision-framework

Textual content recognization shouldn’t be a brand new characteristic on iOS 16. On older model of iOS, you should use APIs from the AVFoundation and Imaginative and prescient framework to detect and acknowledge textual content. Nonetheless, the implementation is sort of sophisticated, particularly for individuals who are new to iOS improvement.

Within the subsequent launch of iOS, all of the above is simplified to a brand new class referred to as DataScannerViewController in VisionKit. By utilizing this view controller, your app can mechanically show a digicam UI with the Reside Textual content functionality.

To make use of the category, you first import the VisionKit framework after which examine if the gadget helps the info scanner characteristic:

The Reside Textual content API solely helps units launched in 2018 or newer with Neural engine. On high of that, you additionally must examine the supply to see if the consumer approves the usage of knowledge scanner:

As soon as each checks come again with optimistic outcomes, you might be prepared to start out the scanning. Right here is the pattern code to launch a digicam with Reside Textual content:

All you want is create an occasion of DataScannerViewController and specify the acknowledged knowledge sorts. For textual content recognition, you go .textual content() as the info kind. As soon as the occasion is prepared, you may current it and begin the scanning course of by calling the startScanning() technique.

Working with DataScannerViewController in SwiftUI

The DataScannerViewController class now solely helps UIKit. For SwiftUI, it wants a bit of labor. We have now to undertake the UIViewControllerRepresentable protocol to make use of the category in SwiftUI initiatives. On this case, I create a brand new struct named DataScanner like this:

This struct accepts two binding variables: one for triggering the info scanning and the opposite is a binding for storing the scanned textual content.

To efficiently undertake the UIViewControllerRepresentable protocol, we have to implement the next strategies:

Within the makeUIViewController technique, we return an occasion of DataScannerViewController. For updateUIViewController, we begin (or cease) the scanning relying on the worth of startScanning.

To seize the scanned textual content, we’ve to undertake the next technique of DataScannerViewControllerDelegate:

The tactic known as when the consumer faucets the detected textual content, so we’ll implement it like this:

We examine the acknowledged merchandise and retailer the scanned textual content if any textual content is acknowledged. Lastly, insert this line of code within the makeUIViewController technique to configure the delegate:

This controller is now prepared to be used in SwiftUI views.

Capturing Textual content Utilizing DataScanner

For example, we’ll construct a textual content scanner app with a quite simple consumer interface. When the app is launched, it mechanically shows the digicam view for reside textual content. When textual content is detected, customers can faucet the textual content to seize it. The scanned textual content is displayed within the decrease a part of the display.

swiftui-live-text-demo

Assuming you’ve created an ordinary SwiftUI challenge, open ContentView.swift and the VisionKit framework.

Subsequent, declare a few state variables to manage the operation of the info scanner and the scanned textual content.

For the physique half, let’s replace the code like this:

We begin the info scanner when the app launches. However earlier than that, we name DataScannerViewController.isSupported and DataScannerViewController.isAvailable to make sure Reside Textual content is supported on the gadget.

The demo app is sort of prepared to check. Since Reside Textual content requires Digital camera entry, please keep in mind to go to the challenge configuration. Add the important thing Privateness – Digital camera Utilization Description within the Information.plist file and specify the rationale why your app must entry the gadget’s digicam.

xcode-info-plist-enable-camera-access

After the modifications, you may deploy the app to an actual iOS gadget and take a look at the Reside Textual content operate.

Aside from English, Reside Textual content additionally helps French, Italian, German, Spanish, Chinese language, Portuguese, Japanese, and Korean.

swiftui-live-text-api-demo-chinese

For the supply code of this demo challenge, you may test it out on GitHub.

Notice: We’re updating our Mastering SwiftUI e book for iOS 16. If you wish to begin studying SwiftUI, take a look at the e book right here. You’ll obtain a free replace later this yr.



RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments