T.C. kimlik kartı ve sürücü belgesinde hologram, kullanıcının belgeyi hafifçe eğerek çektiği kısa bir videoyla kontrol edilir. HologramController kamerayı gösterir, kullanıcıyı yönlendirir ve videoyu kaydeder.
import id_card_detection_ios_cnn
final class HologramViewController : UIViewController {
@IBOutlet weak var containerView: UIView !
private let hologramController = HologramController ()
override func viewDidLoad () {
HologramController.USE_CARD_DETECTION = true
HologramController.HOLOGRAM_CONTROL_ENABLED = true
HologramController.CONTROL_FACE_CAPTURE = true
HologramController.STOP_VIDEO_WHILE_RECORDING = true
hologramController.cardType = .NEW_TC_ID // sürücü belgesi için .DRIVER_LICENSE
hologramController. setDelegate ( self )
hologramController. setFlashDelegate ( self ) // isteğe bağlı
containerView. addSubview (hologramController. view )
override func viewDidAppear ( _ animated: Bool ) {
super . viewDidAppear (animated)
hologramController. startCapture ()
extension HologramViewController : HologramDelegate {
func onVideoCaptured ( videoURL : URL, rotate : Int ) {
hologramController. stopCapture ()
// Videoyu gönderin (aşağıda), ardından dosyayı silin
func onVideoStarted () { }
func onVideoCanceled () { /* belge alandan çıktı; kullanıcıdan tekrar denemesini isteyin */ }
func onFaceDetectionSuccess () { }
func onFaceDetectionIdle () { }
guard let video = try? Data ( contentsOf : videoURL) else { return }
let body = HologramDetectionInputModel ( video : video. base64EncodedString (),
transactionId : transactionId)
IDServiceAPI. detectHologram ( body : body) { result in
case . success ( let response) :
let score = response.controlResults. first { $0 .entryType == "HOLOGRAM" } ? .entryScore
showHologramResult (score)
case . failure ( let error) :
try? FileManager.default. removeItem ( at : videoURL) // videoyu cihazda bırakmayın
Belge
HologramCardType
cardType
T.C. kimlik kartı
.NEW_TC_ID
NEW-ID
Sürücü belgesi
.DRIVER_LICENSE
NEW-DRIVER
Diğer kimlik kartları
.INTERNATIONAL_ID
INTERNATIONAL
HologramFlashDelegate, video kaydedilirken kullanıcının ne yapması gerektiğini bildirir:
Metot
Ne zaman
onFlashNotOnCard()
Flaş yansıması belgenin üzerinde değil
onFlashCircleCompleted(circleIndex:)
Hedef şekillerden biri tamamlandı
onFlashPositionUpdate(isFlashOnTarget:)
Yansıma hedefe girdi veya hedeften çıktı
onFlashNeedsMoreFrames()
Daha fazla hareket gerekiyor
onCardNotInHint()
Belge çerçevenin dışında
onTooMuchGlare()
Belgede fazla parlama var
onWrongCardType(detectedCardType:isBackside:)
Farklı bir belge ya da belgenin diğer yüzü gösteriliyor
Ayar
Açıklama
HologramController.USE_CARD_DETECTION
Kayıttan önce belgeyi çerçevede algılar
HologramController.HOLOGRAM_CONTROL_ENABLED
Kayıt sırasında hologramı cihaz üzerinde kontrol eder
HologramController.CONTROL_FACE_CAPTURE
Belgedeki fotoğrafın görünmesini şart koşar
HologramController.STOP_VIDEO_WHILE_RECORDING
Belge çerçeveden çıkarsa kaydı iptal eder
HologramController.HINT_DISPLAY_RATIO
Çerçeve ipucunun boyutu (örnek: 1.5)
HologramController.MARGIN_RATIO
İpucu çevresindeki pay (örnek: 0.2)
HologramController.OUTSIDE_OF_HINT_COLOR
İpucunun dışındaki alanın rengi
HologramController.IS_TRADEMARK_LOGO_ON
Techsign logosunu gösterir