diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..8f33c130 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +MicroBlink.framework/**/* filter=lfs diff=lfs merge=lfs -text +MicroBlink.bundle/**/* filter=lfs diff=lfs merge=lfs -text diff --git a/CHANGELOG.md b/CHANGELOG.md index 2336d269..2277f825 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,33 @@ +## 1.4.0 + +- iOS bugfixes: + + - Fixed possible deadlock in some cases when MRTD documents are scanned. + - Fixed issue with OCR speed on arm7 devices when Accelerate framework was used. + - Fixed incorrect returning of Address and License number in UKDL scanning. + +- iOS updates: + + - PPOverlayViewController changed the way Overlay Subviews are added to the view hierarchy. Instead of calling `addOverlaySubview:` (which automatically added a view to view hierarachy), you now need to call `registerOverlaySubview:` (which registers subview for scanning events), and manually add subview to view hierarchy using `addSubview:` method. This change gives you more flexibility for adding views and managing autolayout and autoresizing masks. + + - Localization Macros MB_LOCALIZED and MB_LOCALIZED_FORMAT can now be overriden in your app to provide completely custom localization mechanisms. + + - Dramatically increased OCR engine initialization speed + + - Increased speed of scanning cancellation when Cancel button is pressed. + +- ID scanning improvements + + - Added EUDL recognizer (replaced UKDL recognizer). EUDL is capable of automatically detecting various EU Drivers licenses. Currently it works only on German and UK DLs. + - Fixed issue with 0 and O misclassifications in MRTD recognition + - Added support for Austrian MRTD ID documents + +- Internal changes: + + - Implementeded Templating API for easier implementation of new document types + - Implemented Face detection + - Implemented support for Eastern Arabic numeral characters + ## 1.3.0 - Added better integration for Swift diff --git a/MicroBlink.bundle/IDCard.png b/MicroBlink.bundle/IDCard.png index 816fb95e..5bd9f6a6 100644 Binary files a/MicroBlink.bundle/IDCard.png and b/MicroBlink.bundle/IDCard.png differ diff --git a/MicroBlink.bundle/IDCard@2x.png b/MicroBlink.bundle/IDCard@2x.png index 271ddc30..ff4c3d3b 100644 Binary files a/MicroBlink.bundle/IDCard@2x.png and b/MicroBlink.bundle/IDCard@2x.png differ diff --git a/MicroBlink.bundle/Info.plist b/MicroBlink.bundle/Info.plist index e4a53c91..1b05f713 100644 Binary files a/MicroBlink.bundle/Info.plist and b/MicroBlink.bundle/Info.plist differ diff --git a/MicroBlink.bundle/PPbeep.wav b/MicroBlink.bundle/PPbeep.wav index 6489014d..cced9d93 100644 Binary files a/MicroBlink.bundle/PPbeep.wav and b/MicroBlink.bundle/PPbeep.wav differ diff --git a/MicroBlink.bundle/en.strings b/MicroBlink.bundle/en.strings index 7b996f0e..df193bb5 100644 Binary files a/MicroBlink.bundle/en.strings and b/MicroBlink.bundle/en.strings differ diff --git a/MicroBlink.bundle/ocr_model.zzip b/MicroBlink.bundle/ocr_model.zzip index d4448167..30771026 100644 Binary files a/MicroBlink.bundle/ocr_model.zzip and b/MicroBlink.bundle/ocr_model.zzip differ diff --git a/MicroBlink.bundle/torchoff.png b/MicroBlink.bundle/torchoff.png index b7148e06..477a7785 100644 Binary files a/MicroBlink.bundle/torchoff.png and b/MicroBlink.bundle/torchoff.png differ diff --git a/MicroBlink.bundle/torchoff@2x.png b/MicroBlink.bundle/torchoff@2x.png index 55d19199..a6978f4f 100644 Binary files a/MicroBlink.bundle/torchoff@2x.png and b/MicroBlink.bundle/torchoff@2x.png differ diff --git a/MicroBlink.bundle/torchoff_pressed.png b/MicroBlink.bundle/torchoff_pressed.png index 22702063..1f9c2083 100644 Binary files a/MicroBlink.bundle/torchoff_pressed.png and b/MicroBlink.bundle/torchoff_pressed.png differ diff --git a/MicroBlink.bundle/torchoff_pressed@2x.png b/MicroBlink.bundle/torchoff_pressed@2x.png index 51bf4a52..a2ade3f5 100644 Binary files a/MicroBlink.bundle/torchoff_pressed@2x.png and b/MicroBlink.bundle/torchoff_pressed@2x.png differ diff --git a/MicroBlink.bundle/torchon.png b/MicroBlink.bundle/torchon.png index 4d8cc8f9..2838d544 100644 Binary files a/MicroBlink.bundle/torchon.png and b/MicroBlink.bundle/torchon.png differ diff --git a/MicroBlink.bundle/torchon@2x.png b/MicroBlink.bundle/torchon@2x.png index f619345b..9a5e603f 100644 Binary files a/MicroBlink.bundle/torchon@2x.png and b/MicroBlink.bundle/torchon@2x.png differ diff --git a/MicroBlink.bundle/torchon_pressed.png b/MicroBlink.bundle/torchon_pressed.png index 10563c90..d553f6e0 100644 Binary files a/MicroBlink.bundle/torchon_pressed.png and b/MicroBlink.bundle/torchon_pressed.png differ diff --git a/MicroBlink.bundle/torchon_pressed@2x.png b/MicroBlink.bundle/torchon_pressed@2x.png index 96055bd6..4d8650d7 100644 Binary files a/MicroBlink.bundle/torchon_pressed@2x.png and b/MicroBlink.bundle/torchon_pressed@2x.png differ diff --git a/MicroBlink.framework/Headers/MicroBlink.h b/MicroBlink.framework/Headers/MicroBlink.h index c60e5ce1..da4b95fa 100644 --- a/MicroBlink.framework/Headers/MicroBlink.h +++ b/MicroBlink.framework/Headers/MicroBlink.h @@ -1,33 +1,3 @@ -// -// MicroBlink.h -// MicroBlinkFramework -// -// Created by Jurica Cerovec on 3/29/12. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#ifndef PhotoPayFramework_MicroBlink_h -#define PhotoPayFramework_MicroBlink_h - -// Basic class Attributes -#import "PPMicroBlinkDefines.h" - -// Include basic API -#import "PPSettings.h" -#import "PPScanDelegate.h" -#import "PPCoordinator.h" - -// Include Recognizers in BlinkID -#import "PPBlinkIDRecognizers.h" - -// Include Overlay view controller headers -#import "PPBaseOverlayViewController.h" -#import "PPModernBaseOverlayViewController.h" - -// Include Overlay subview headers -#import "PPModernOcrResultOverlaySubview.h" -#import "PPOcrResultOverlaySubview.h" -#import "PPModernViewfinderOverlaySubview.h" -#import "PPOverlaySubview.h" - -#endif +version https://git-lfs.github.com/spec/v1 +oid sha256:39e01a7678ec1fe710e79b029773f76eecdd3c233db8d1360889ba0c8059fce0 +size 786 diff --git a/MicroBlink.framework/Headers/PPBarDecoderRecognizerResult.h b/MicroBlink.framework/Headers/PPBarDecoderRecognizerResult.h index bf2984f7..ce21310f 100644 --- a/MicroBlink.framework/Headers/PPBarDecoderRecognizerResult.h +++ b/MicroBlink.framework/Headers/PPBarDecoderRecognizerResult.h @@ -1,120 +1,3 @@ -// -// PPBarDecoderRecognizerResult.h -// Pdf417Framework -// -// Created by Jura on 11/07/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerResult.h" -#import "PPBarcodeDetailedData.h" - -/** - * Type of the barcode which BarDecoderRecognizer returnes - */ -typedef NS_ENUM(NSUInteger, PPBarDecoderBarcodeType){ - /** Code 128 */ - PPBarDecoderBarcodeTypeCode128, - /** Code 39 */ - PPBarDecoderBarcodeTypeCode39 -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Result of scanning with BarDecoder Recognizer - * - * Contains raw Barcode detailed data, barcode type, and methods for getting string representation of results. - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPBarDecoderRecognizerResult : PPRecognizerResult - -/** - * Type of the barcode scanned - * - * @return Type of the barcode - */ -- (PPBarDecoderBarcodeType)barcodeType; - -/** - * Flag indicating uncertain scanning data - * E.g obtained from damaged barcode. - */ -- (BOOL)isUncertain; - -/** - * Byte array with result of the scan - */ -- (NSData *)data; - -/** - * Retrieves string content of the scanned data using guessed encoding. - * - * If you're 100% sure you know the exact encoding in the barcode, use stringUsingEncoding: method. - * Otherwise stringUsingDefaultEncoding. - * - * This method uses NSString stringEncodingForData:encodingOptions:convertedString:usedLossyConversion: method for - * guessing the encoding. - * - * @return created string, or nil if encoding couldn't be found. - */ -- (NSString *)stringUsingGuessedEncoding; - -/** - * Retrieves string content of the scanned data using given encoding. - * - * @param encoding The encoding for the returned string. - * - * @return String created from data property, using given encoding - */ -- (NSString *)stringUsingEncoding:(NSStringEncoding)encoding; - -/** - * Raw barcode detailed result - */ -- (PPBarcodeDetailedData *)rawData; - - -/** - * Byte array with extended result of the scan, if available. - */ -- (NSData *)extendedData; - -/** - * Retrieves string content of the extended scanned data using guessed encoding. - * - * If you're 100% sure you know the exact encoding in the barcode, use stringUsingEncoding: method. - * Otherwise stringUsingDefaultEncoding. - * - * This method uses NSString stringEncodingForData:encodingOptions:convertedString:usedLossyConversion: method for - * guessing the encoding. - * - * @return created string, or nil if encoding couldn't be found. - */ -- (NSString *)extendedStringUsingGuessedEncoding; - -/** - * Retrieves string content of the extended scanned data using given encoding. - * - * @param encoding The encoding for the returned string. - * - * @return String created from extendedData property, using given encoding - */ -- (NSString *)extendedStringUsingEncoding:(NSStringEncoding)encoding; - -/** - * Extended Raw barcode detailed result - */ -- (PPBarcodeDetailedData *)extendedRawData; - -/** - * Method which gives string representation for a given PPBarDecoderBarcodeType enum value. - * - * @param type PPBarDecoderBarcodeType enum value - * - * @return String representation of a given PPBarDecoderBarcodeType enum value. - */ -+ (NSString *)toTypeName:(PPBarDecoderBarcodeType)type; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:ec3eedb4f41f47d27815a4a4f3dbee39caac1d8e196b2e2962463089840de675 +size 3173 diff --git a/MicroBlink.framework/Headers/PPBarDecoderRecognizerSettings.h b/MicroBlink.framework/Headers/PPBarDecoderRecognizerSettings.h index b069a95c..4f8ef436 100644 --- a/MicroBlink.framework/Headers/PPBarDecoderRecognizerSettings.h +++ b/MicroBlink.framework/Headers/PPBarDecoderRecognizerSettings.h @@ -1,61 +1,3 @@ -// -// PPBarDecoderRecognizerSettings.h -// Pdf417Framework -// -// Created by Jura on 10/07/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerSettings.h" - -/** - * Settings class for configuring BarDecoder Recognizer - * - * BarDecoder recognizer is used for scanning Code 39 and Code 128 barcodes and is superior in performance - * to ZXIngRecognizer - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPBarDecoderRecognizerSettings : PPRecognizerSettings - -/** - * Set this to YES to scan Code 39 barcodes - * - * Default: YES - */ -@property (nonatomic) BOOL scanCode39; - -/** - * Set this to YES to scan Code 128 barcodes - * - * Default: YES - */ -@property (nonatomic) BOOL scanCode128; - -/** - * Set this to YES to allow scanning barcodes with inverted intensities - * (i.e. white barcodes on black background) - * - * Default: NO - * - * @warning: this options doubles the frame processing time - */ -@property (nonatomic) BOOL scanInverse; - -/** - * Use automatic scale detection feature. This normally should not be used. - * The only situation where this helps in getting better scanning results is - * when using kPPUseVideoPresetPhoto on iPad devices. - * Video preview resoution of 2045x1536 in that case is very large and autoscale helps. - * - * Default: NO - */ -@property (nonatomic) BOOL autoDetectScale; - -/** - * Set this to YES to enable scanning of lower resolution barcodes - * at cost of additional processing time. - * - * Default: NO - */ -@property (nonatomic) BOOL tryHarder; - -@end +version https://git-lfs.github.com/spec/v1 +oid sha256:94e4ce581ed987a611f46410c57b6d1f16131de1099b2e26cd75ac86fdc9493f +size 1503 diff --git a/MicroBlink.framework/Headers/PPBarcodeDetailedData.h b/MicroBlink.framework/Headers/PPBarcodeDetailedData.h index c8f846b6..18c85a95 100644 --- a/MicroBlink.framework/Headers/PPBarcodeDetailedData.h +++ b/MicroBlink.framework/Headers/PPBarcodeDetailedData.h @@ -1,63 +1,3 @@ -// -// PPBarcodeDetailedData.h -// Pdf417Framework -// -// Created by Jura on 11/07/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import -#import "PPMicroBlinkDefines.h" - -/** - * Enumeration of barcode element types - */ -typedef NS_ENUM(NSInteger, PPBarcodeElementType) { - - /** barcode element is of type text and can be interpreted as string*/ - PPBarcodeElementTypeText, - - /** barcode element is arbitrary byte array */ - PPBarcodeElementTypeByte -}; - -/** - * represents one raw element in barcode - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPBarcodeElement : NSObject - -/** byte array contained in this barcode element */ -@property (nonatomic, retain, readonly) NSData *elementBytes; - -/** type of this element */ -@property (nonatomic, assign, readonly) PPBarcodeElementType elementType; - -/** - Designated initializer shich sets byte array for specific barcode element type - */ -- (instancetype)initWithBytes:(NSData *)bytes - type:(PPBarcodeElementType)type; - -@end - -/** - * represents the collection of barcode raw elements - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPBarcodeDetailedData : NSObject - -/** array of barcode elements (PPBarcodeElement *) contained in barcode */ -@property (nonatomic, retain, readonly) NSArray *barcodeElements; - -/** - Designated initializer which sets all barcode elements - */ -- (instancetype)initWithElements:(NSArray *)barcodeElements; - -/** - * Use this method to get all barcode data in one byte array. - * This is useful if you know how to interpret barcode data - * and don't want to bother with all barcode elements. - */ -- (NSData *)getAllData; - -@end +version https://git-lfs.github.com/spec/v1 +oid sha256:ed5ff163c4c464c604fc77c9231ddfecc31a4e58459fcb4d94bf4a7e4ab0377f +size 1659 diff --git a/MicroBlink.framework/Headers/PPBaseOverlayViewController.h b/MicroBlink.framework/Headers/PPBaseOverlayViewController.h index 0f8aa988..9587f9bb 100644 --- a/MicroBlink.framework/Headers/PPBaseOverlayViewController.h +++ b/MicroBlink.framework/Headers/PPBaseOverlayViewController.h @@ -1,32 +1,3 @@ -// -// PPBaseOverlayViewController.h -// BarcodeFramework -// -// Created by Jura on 06/06/14. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import -#import "PPOverlayViewController.h" -#import "PPOverlaySubview.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Common base class for PhotoPay default overlay view controllers - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPBaseOverlayViewController : PPOverlayViewController - -- (NSArray*)overlaySubviews; - -/** - Array with overlay subviews (UIView subclasses implementing the PPOverlaySubview protocol) - */ -- (void)addOverlaySubview:(UIView*)subview; -- (void)removeOverlaySubview:(UIView*)subview; - -@property (nonatomic, weak) id overlaySubviewsDelegate; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:6d99fbe409affc4e2e8034a4db2c9588fccb9463bdee14ed5823d452efe605dc +size 799 diff --git a/MicroBlink.framework/Headers/PPBlinkBarcodeRecognizers.h b/MicroBlink.framework/Headers/PPBlinkBarcodeRecognizers.h index cbfe2fd8..7fb7dc5c 100644 --- a/MicroBlink.framework/Headers/PPBlinkBarcodeRecognizers.h +++ b/MicroBlink.framework/Headers/PPBlinkBarcodeRecognizers.h @@ -1,28 +1,3 @@ -// -// PPBlinkBarcodeRecognizers.h -// BlinkIdFramework -// -// Created by Jura on 30/12/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#ifndef PPBlinkBarcodeRecognizers_h -#define PPBlinkBarcodeRecognizers_h - -// Pdf417 -#import "PPPdf417RecognizerSettings.h" -#import "PPPdf417RecognizerResult.h" - -// USDL -#import "PPUsdlRecognizerSettings.h" -#import "PPUsdlRecognizerResult.h" - -// ZXing -#import "PPZXingRecognizerSettings.h" -#import "PPZXingRecognizerResult.h" - -// BarDecoder -#import "PPBarDecoderRecognizerSettings.h" -#import "PPBarDecoderRecognizerResult.h" - -#endif /* PPBlinkBarcodeRecognizers_h */ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae12a7ba4d7b025f8f835da2aef8b14e7c79b0cdf3d26edf253a63dd6163d8e4 +size 620 diff --git a/MicroBlink.framework/Headers/PPBlinkIDRecognizers.h b/MicroBlink.framework/Headers/PPBlinkIDRecognizers.h index c8017082..3018e7b7 100644 --- a/MicroBlink.framework/Headers/PPBlinkIDRecognizers.h +++ b/MicroBlink.framework/Headers/PPBlinkIDRecognizers.h @@ -1,31 +1,3 @@ -// -// PPBlinkIDRecognizers.h -// BlinkIdFramework -// -// Created by Jura on 30/12/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#ifndef PPBlinkIDRecognizers_h -#define PPBlinkIDRecognizers_h - -// MRZ -#import "PPMrtdRecognizerSettings.h" -#import "PPMrtdRecognizerResult.h" - -// UKDL -#import "PPUkdlRecognizerSettings.h" -#import "PPUkdlRecognizerResult.h" - -// Malaysian IDs (MyKad) -#import "PPMyKadRecognizerSettings.h" -#import "PPMyKadRecognizerResult.h" - -// Detector recognizer -#import "PPDetectorRecognizerSettings.h" -#import "PPDetectorRecognizerResult.h" - -// Use all recognizers from BlinkBarcode -#import "PPBlinkBarcodeRecognizers.h" - -#endif /* PPBlinkIDRecognizers_h */ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee692ec166c8f47bfb4b35a1809db3874568dbbebdc6b4c4ba3843541d3c0b88 +size 783 diff --git a/MicroBlink.framework/Headers/PPCameraSettings.h b/MicroBlink.framework/Headers/PPCameraSettings.h index 6c269332..a95c7792 100644 --- a/MicroBlink.framework/Headers/PPCameraSettings.h +++ b/MicroBlink.framework/Headers/PPCameraSettings.h @@ -1,135 +1,3 @@ -// -// PPCameraSettings.h -// PhotoPayFramework -// -// Created by Jura on 23/02/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import -#import - -#import "PPMicroBlinkDefines.h" - -/** - * Camera resolution preset - */ -typedef NS_ENUM(NSUInteger, PPCameraPreset) { - - /** 480p video will always be used */ - PPCameraPreset480p, - - /** 720p video will always be used */ - PPCameraPreset720p, - - /** The library will calculate optimal resolution based on the use case and device used */ - PPCameraPresetOptimal, - - /** Device's maximal video resolution will be used. */ - PPCameraPresetMax, - - /** Device's photo preview resolution will be used */ - PPCameraPresetPhoto, -}; - -/** - * Camera type - */ -typedef NS_ENUM(NSUInteger, PPCameraType) { - - /** Back facing camera */ - PPCameraTypeBack, - - /** Front facing camera */ - PPCameraTypeFront -}; - -/** - * Camera autofocus restricion mode - */ -typedef NS_ENUM(NSUInteger, PPCameraAutofocusRestriction) { - - /** Default. Indicates that the autofocus system should not restrict the focus range. */ - PPCameraAutofocusRestrictionNone, - - /** Indicates that the autofocus system should restrict the focus range for subject matter that is near to the camera. */ - PPCameraAutofocusRestrictionNear, - - /** Indicates that the autofocus system should restrict the focus range for subject matter that is far from the camera. */ - PPCameraAutofocusRestrictionFar, -}; - -/** - * Settings class containing parameters for camera capture - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPCameraSettings : NSObject - -/** - * Camera preset. With this property you can set the resolution of the camera - * - * Default: PPCameraPresetOptimal - */ -@property (nonatomic, assign) PPCameraPreset cameraPreset; - -/** - * Camera type. You can choose between front and back facing. - * - * Default: PPCameraTypeBack - */ -@property (nonatomic, assign) PPCameraType cameraType; - -/** - * Interval between forcing two camera focuses. If <= 0, forced focuses arent performed - * and only continuous autofocus mode will be used. - * - * Default - * - 10.0f for BlinkID and BlinkOCR product - * - 3.2f for PhotoPay product - * - 5.0f for Pdf417 product - * - 0.0f for PhotoMath product - */ -@property (nonatomic, assign) NSTimeInterval autofocusInterval; - -/** - * Range restriction for camera autofocus. - * - * Default: PPCameraAutofocusRestrictionNone - */ -@property (nonatomic, assign) PPCameraAutofocusRestriction cameraAutofocusRestriction; - -/** - * Gravity of Camera preview on screen. - * - * Default: AVLayerVideoGravityResizeAspectFill - */ -@property (nonatomic, weak) NSString *videoGravity; - -/** - * Point against which the autofocus will be performed - * - * Default (0.5f, 0.5f) - middle of the screen. - */ -@property (nonatomic, assign) CGPoint focusPoint; - -/** - * Designated initializer. Initializes the object with default settings (see above for defaults) - * - * @return object initialized with default values. - */ -- (instancetype)init; - -/** - * Returns an optimal AVFoundation session preset based on cameraPreset value. - * - * @return optimal AVFoundation session preset - */ -- (NSString *)calcSessionPreset; - -/** - * Returns an optimal AVFoundation autofocus range restriction value based on cameraAutofocusRestriction. - * - * @return optimal AVFoundation autofocus range restriction - */ -- (AVCaptureAutoFocusRangeRestriction)calcAutofocusRangeRestriction; - -@end +version https://git-lfs.github.com/spec/v1 +oid sha256:af54d98ee124134e277b0056173888dc2e35c0642789ef89cd49613f4e48b14e +size 3480 diff --git a/MicroBlink.framework/Headers/PPCoordinator.h b/MicroBlink.framework/Headers/PPCoordinator.h index 304e2dfa..80ed64a5 100644 --- a/MicroBlink.framework/Headers/PPCoordinator.h +++ b/MicroBlink.framework/Headers/PPCoordinator.h @@ -1,145 +1,3 @@ -// -// PPCoordinator.h -// PhotoPaySdk -// -// Created by Jurica Cerovec on 11/19/11. -// Copyright (c) 2011 Racuni.hr. All rights reserved. -// - -#import -#import -#import "PPMicroBlinkDefines.h" -#import "PPScanningViewController.h" -#import "PPCameraSettings.h" - -@protocol PPCoordinatorDelegate; -@protocol PPScanDelegate; -@class PPSettings; -@class PPCameraManager; -@class PPRecognitionResult; -@class PPOverlayViewController; -@class PPAccelerometerManager; - -NS_ASSUME_NONNULL_BEGIN - -/** - * This object is the mastermind of the recognition process. - * - * PPCoordinator coordinates hardware control with the recognition algorithms, - * and provides facotry method for creating ViewController with UI for the camera. - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPCoordinator : NSObject - -/** Scanning settings pending to be used with applySettings method */ -@property (nonatomic, strong) PPSettings *currentSettings; - -/** delegate object for notifying the caller on recognition results */ -@property (nonatomic, weak) id scanDelegate; - -/**----------------------*/ -/** @name Initialization */ -/**----------------------*/ -#pragma mark - Initialization - -/** - * Initializes the object in proper state. - * - * Sets the settings for scanning, camera control, licensing, UI and Metadata handling. - * - * @param settings settings used for initialization - * - * @return initialized coordinator object - */ -- (instancetype)initWithSettings:(PPSettings *)settings; - -/**-------------------------------*/ -/** @name Settings recofiguration */ -/**-------------------------------*/ -#pragma mark - Settings recofiguration - -/** - * Method which is used to apply PPSettings object given by currentSettings property - * - * Usual use case is to update settings in the fly, to perform some complex scanning functionality - * where a reconfiguration of the recognizers is needed. - */ -- (void)applySettings; - -/**------------------------------------------*/ -/** @name Creating Scanning view controllers */ -/**------------------------------------------*/ -#pragma mark - Creating Scanning view controllers - -/** - * Method creates a scanning view controller which is responsible for displaying the - * camera input on the phone screen. Also, scanning view controller delivers PhotoPay - * results via PPScanDelegate object. - * - * Creating scanning view controller with this method creates default overlay view. - * - * @param delegate PPScanDelegate object which will get notified about scanning events - * - * @return Scanning view controller fully initialized for presenting on screen. - */ -- (UIViewController *)cameraViewControllerWithDelegate:(id)delegate; - -/** - * Method creates a camera view controller which is responsible for displaying the - * camera input on the phone screen. Also, camera view controller delivers PhotoPay - * results via PPPhotoPayDelegate object - * - * With this method you can specify custom overlay view to be used on the camera display. - * The only requirement for the overlay view is that it's a subclass of PPOverlayViewController - * - * @param delegate PPScanDelegate object which will get notified about scanning events - * @param overlayViewController View Controller which is presented on top of scanning view controller as a child. - * - * @return Scanning view controller fully initialized for presenting on screen. - */ -- (UIViewController *)cameraViewControllerWithDelegate:(nullable id)delegate - overlayViewController:(PPOverlayViewController *)overlayViewController; - -/**-----------------------------------*/ -/** @name Direct processing of images */ -/**-----------------------------------*/ -#pragma mark - Direct processing of images - -/** - * Processes an UIImage object using current settings. - * Results are passed to a given delegate object. - * - * @param image image for processing - * @param scanningRegion region of the image used for scanning, where the whole image is specified with CGRectMake(0.0, 0.0, 1.0, 1.0) - * @param delegate delegate which is notified on processing events - */ -- (void)processImage:(UIImage *)image - scanningRegion:(CGRect)scanningRegion - delegate:(id)delegate; - - -/**-------------------------------------------*/ -/** @name Obtaining information about the SDK */ -/**-------------------------------------------*/ -#pragma mark - Obtaining information about the SDK - -/** - * This method returns true when scanning is unsupported on a specific device. - * Error object contains description of the reason for that. - * - * @param type The camera type you want to check for. - * @param error If scanning is not supported, when method this method returns, this parameter contains an NSError object that describes the problem. If you are not interested in possible errors, pass in NULL. - * - * @return YES if scanning is not supported, NO otherwise. - */ -+ (BOOL)isScanningUnsupportedForCameraType:(PPCameraType)type error:(NSError * _Nullable * _Nullable)error NS_SWIFT_NOTHROW; - -/** - * Returns the string that contains the library build version - * - * @return string that contains the library build version - */ -+ (NSString *)getBuildVersionString; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:5704818578f618007fe281c288c1b350bb7f6dd911f89fec9c52d5e488984e2e +size 5373 diff --git a/MicroBlink.framework/Headers/PPDateOcrParserFactory.h b/MicroBlink.framework/Headers/PPDateOcrParserFactory.h new file mode 100644 index 00000000..2c6bcacd --- /dev/null +++ b/MicroBlink.framework/Headers/PPDateOcrParserFactory.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6be773006dbfdb4c4caa5d8632d24e2a51fde4481f2e09c60404b522e3ae0c47 +size 315 diff --git a/MicroBlink.framework/Headers/PPDetectionStatus.h b/MicroBlink.framework/Headers/PPDetectionStatus.h index 5b03af9e..aa5af8fd 100644 --- a/MicroBlink.framework/Headers/PPDetectionStatus.h +++ b/MicroBlink.framework/Headers/PPDetectionStatus.h @@ -1,100 +1,3 @@ -// -// DetectionStatus.h -// PhotoPayFramework -// -// Created by Jurica Cerovec on 5/12/13. -// Copyright (c) 2013 MicroBlink Ltd. All rights reserved. -// - -#ifndef PhotoPayFramework_DetectionStatus_h -#define PhotoPayFramework_DetectionStatus_h - -/** - * Status of the object detection in MicroBlink SDK - */ -typedef NS_ENUM(NSInteger, PPDetectionStatus) { - - /** Object was successfuly detected. */ - PPDetectionStatusSuccess = 1<<0, - - /** Object was not detected */ - PPDetectionStatusFail = 1<<1, - - /** Object was successfully detected, but the camera was too far above the object for processing */ - PPDetectionStatusCameraTooHigh = 1<<2, - - /** Object was successfully detected, but the perspective angle of camera is too high */ - PPDetectionStatusCameraAtAngle = 1<<3, - - /** Object was successfully detected, but the object is rotated and not aligned to the camera edges */ - PPDetectionStatusCameraRotated = 1<<4, - - /** QR code was successfully detected */ - PPDetectionStatusQRSuccess = 1<<6, - - /** PDF417 barcode was successfully detected */ - PPDetectionStatusPdf417Success = 1<<7, - - /** Object was successfully detected using a fallback algorithm */ - PPDetectionStatusFallbackSuccess = 1<<8, - - /** Object was detected, but is only partially visible on screen */ - PPDetectionStatusPartialForm = 1<<9, - - /** Object was successfully detected, but the camera is too near to the object for processing */ - PPDetectionStatusCameraTooNear = 1<<10, -}; - -// Ignore unused method warning -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wall" - -/** - * Method converts PPDetectionStatus value to NSString - * - * @param status Detection status value for which NSString is required - * - * @return NSString value for PPDetectionStatus value - */ -static NSString* stringFromDetectionStatus(PPDetectionStatus status) { - - NSString* defaultString = @"Detection status: "; - NSString* res = [NSString stringWithString:defaultString]; - - if (status & PPDetectionStatusSuccess) { - res = [res stringByAppendingString:@"Success\n"]; - } - if (status & PPDetectionStatusFail) { - res = [res stringByAppendingString:@"Fail\n"]; - } - if (status & PPDetectionStatusCameraTooHigh) { - res = [res stringByAppendingString:@"Camera too high\n"]; - } - if (status & PPDetectionStatusCameraAtAngle) { - res = [res stringByAppendingString:@"Camera at angle\n"]; - } - if (status & PPDetectionStatusCameraRotated) { - res = [res stringByAppendingString:@"Camera rotated\n"]; - } - if (status & PPDetectionStatusQRSuccess) { - res = [res stringByAppendingString:@"QR success\n"]; - } - if (status & PPDetectionStatusPdf417Success) { - res = [res stringByAppendingString:@"PDF417 success\n"]; - } - if (status & PPDetectionStatusFallbackSuccess) { - res = [res stringByAppendingString:@"Fallback sucess\n"]; - } - if (status & PPDetectionStatusPartialForm) { - res = [res stringByAppendingString:@"Partial form\n"]; - } - if ([res length] == [defaultString length]) { - res = @"No value!"; - } - - return res; -} - -#pragma clang diagnostic pop - -#endif +version https://git-lfs.github.com/spec/v1 +oid sha256:8de7d53a41a3c69659319a5b15f9d99aed17a7aac4098fafa9a21c8292641d2a +size 3266 diff --git a/MicroBlink.framework/Headers/PPDetectorRecognizerResult.h b/MicroBlink.framework/Headers/PPDetectorRecognizerResult.h index fd53dd49..a0788f92 100644 --- a/MicroBlink.framework/Headers/PPDetectorRecognizerResult.h +++ b/MicroBlink.framework/Headers/PPDetectorRecognizerResult.h @@ -1,31 +1,3 @@ -// -// PPDetectorRecognizerResult.h -// BlinkIdFramework -// -// Created by Jura on 06/10/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerResult.h" - -#import "PPDetectorResult.h" -#import "PPQuadDetectorResult.h" -#import "PPDocumentDetectorResult.h" -#import "PPMrtdDetectorResult.h" -#import "PPMultiDetectorResult.h" - -NS_ASSUME_NONNULL_BEGIN - -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPDetectorRecognizerResult : PPRecognizerResult - -/** - * Obtians the detector result. The type of the detector result depends on the DetectorSettings used when initializing - * PPDetectorRecognizer - * - * @return detectorResult - */ -- (PPDetectorResult *)detectorResult; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:1aae6c6b4474f525c25ea0b7674b182332af106ec418d92bfaccf96eda0c7537 +size 751 diff --git a/MicroBlink.framework/Headers/PPDetectorRecognizerSettings.h b/MicroBlink.framework/Headers/PPDetectorRecognizerSettings.h index f85b68d6..7468701b 100644 --- a/MicroBlink.framework/Headers/PPDetectorRecognizerSettings.h +++ b/MicroBlink.framework/Headers/PPDetectorRecognizerSettings.h @@ -1,32 +1,3 @@ -// -// PPDetectorRecogizerSettings.h -// BlinkIdFramework -// -// Created by Jura on 06/10/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerSettings.h" - -#import "PPDetectorSettings.h" - -#import "PPDocumentDetectorSettings.h" -#import "PPMrtdDetectorSettings.h" -#import "PPMultiDetectorSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings class for configuring Detector recognizer - * - * Detector recognizer is used to detect various documents on the image - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPDetectorRecognizerSettings : PPRecognizerSettings - -- (instancetype)initWithDetectorSettings:(PPDetectorSettings *)detectorSettings NS_DESIGNATED_INITIALIZER; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:7c5945dd00d6b4444430f8561d1536f17c7881eae9f478cb186fadb0fb276efd +size 762 diff --git a/MicroBlink.framework/Headers/PPDetectorResult.h b/MicroBlink.framework/Headers/PPDetectorResult.h index 685f84de..726e7e94 100644 --- a/MicroBlink.framework/Headers/PPDetectorResult.h +++ b/MicroBlink.framework/Headers/PPDetectorResult.h @@ -1,42 +1,3 @@ -// -// PPDetectorResult.h -// BlinkIdFramework -// -// Created by Jura on 10/01/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#import - -#import "PPMicroBlinkDefines.h" - -typedef NS_ENUM(NSUInteger, PPDetectionCode) { - PPDetectionCodeFail = 0, - PPDetectionCodeFallback, - PPDetectionCodeSuccess, -}; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Abstract detector result objet - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPDetectorResult : NSObject - -/** - * Detection code which describes the status of detecton - */ -@property (nonatomic, assign, readonly) PPDetectionCode code; - -/** - * Initializes the result with result code - * - * @return initialized object - */ -- (instancetype)initWithCode:(PPDetectionCode)code NS_DESIGNATED_INITIALIZER; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:e96a0260b8098a9c8a9081307fc086f5e6a9705a74782c22534b51a7d8f74a2c +size 1292 diff --git a/MicroBlink.framework/Headers/PPDetectorSettings.h b/MicroBlink.framework/Headers/PPDetectorSettings.h index b615224f..af749773 100644 --- a/MicroBlink.framework/Headers/PPDetectorSettings.h +++ b/MicroBlink.framework/Headers/PPDetectorSettings.h @@ -1,49 +1,3 @@ -// -// PPDetectorSettings.h -// BlinkIdFramework -// -// Created by Jura on 06/10/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#import - -#import "PPMicroBlinkDefines.h" - -NS_ASSUME_NONNULL_BEGIN - -struct DetectorSettingsImpl; -typedef struct DetectorSettingsImpl DetectorSettingsImpl; - -/** - * MicroBlink scanning libraries run detector objects to find objects on image - * - * Each detector is configured with PPDetectorSettings object - * - * This class is common superclass for each of the Detector settings, - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPDetectorSettings : NSObject - -@property (nonatomic, readonly, assign) DetectorSettingsImpl* settings; - -/** - * YES if detector should display detected location on device screen - * - * Default: YES - */ -@property (nonatomic) BOOL displayDetectedLocation; - -/** - * Designated initializer. Internal. - * - * @param settings implementation object - * - * @return instantiated object - */ -- (instancetype)initWithSettings:(DetectorSettingsImpl*)settings NS_DESIGNATED_INITIALIZER; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:41b22c9abce61a6c6a15e7434b36ac307dbbda0ac18e47db8f27de4637829306 +size 1141 diff --git a/MicroBlink.framework/Headers/PPDocumentDecodingInfo.h b/MicroBlink.framework/Headers/PPDocumentDecodingInfo.h index b5e8d639..55138fc3 100644 --- a/MicroBlink.framework/Headers/PPDocumentDecodingInfo.h +++ b/MicroBlink.framework/Headers/PPDocumentDecodingInfo.h @@ -1,79 +1,3 @@ -// -// PPDocumentDecodingInfo.h -// BlinkIdFramework -// -// Created by Jura on 09/01/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#import -#import "PPMicroBlinkDefines.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Object describing a part of the document which is being processed (decoded) in the recognition process. - * Decoding info defines which part of the detected document is being processed (location property). In the processing - * stage, this part of the image is being dewarped to a standardized resolution, and the height of the dewarped image - * is also defined in this object (dewarpedHeight) - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPDocumentDecodingInfoEntry : NSObject - -/** - * Location of the decoded element on the detected document. - * - * For example, if the whole document should be decoded, then location should be set to CGRectMake(0.0, 0.0, 1.0, 1.0); - * If just the upper left quarter of the image should be decoded, location sholud be set to CGRectMake(0.0, 0.0, 0.25, 0.25); - */ -@property (nonatomic, assign) CGRect location; - -/** - * Part of the origin image defined with location property, in the processing stage is being dewarped to a standardized resolution. - * Dewarped height defines the height of that image. - * - * For example, ID documents are usually dewarped to a height of 750 pixels. - */ -@property (nonatomic, assign) CGFloat dewarpedHeight; - -/** - * Constructor which initializes decoding info entry. Specifies location of the entry, and dewarped height. - * - * @param location location of the decoding info entry on the detected document. - * @param dewarpedHeight height of the dewarped image - * - * @return initialized object. - */ -- (instancetype)initWithLocation:(CGRect)location - dewarpedHeight:(CGFloat)dewarpedHeight NS_DESIGNATED_INITIALIZER; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -/** - * Decoding info consists of one or more decoding info entries. - */ -PP_CLASS_AVAILABLE_IOS(6.0)@interface PPDocumentDecodingInfo : NSObject - -/** - * Specifies a list of decoding info entry objects, which define a complete decoding information for a detected document. - */ -@property (nonatomic, readonly) NSArray *entries; - -/** - * Initializes an object with empty list of entries. - * - * @return initialized object - */ -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -/** - * Adds one decoding info entry to a list. - * - * @param entry decoding info entry - */ -- (void)addEntry:(PPDocumentDecodingInfoEntry *)entry; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:c433d51cddf2bde8be4e67ecaa0261814c3e6b9e1e76c57fad666e7c40db09b3 +size 2770 diff --git a/MicroBlink.framework/Headers/PPDocumentDetectorResult.h b/MicroBlink.framework/Headers/PPDocumentDetectorResult.h index c5b36c78..5e486160 100644 --- a/MicroBlink.framework/Headers/PPDocumentDetectorResult.h +++ b/MicroBlink.framework/Headers/PPDocumentDetectorResult.h @@ -1,32 +1,3 @@ -// -// PPDocumentDetectorResult.h -// BlinkIdFramework -// -// Created by Jura on 11/01/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#import "PPQuadDetectorResult.h" - -#import "PPDocumentSpecification.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Result of the documente detector - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPDocumentDetectorResult : PPQuadDetectorResult - -/** - * Aspect ratio of detected document - */ -@property (nonatomic) CGFloat aspectRatio; - -/** - * screen orientation used when detecting the document - */ -@property (nonatomic) UIInterfaceOrientation screenOrientation; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:b731f3ef50178efbb91dbea1b19b241c8466ae7deb1d83b14c6f30d916a075e0 +size 627 diff --git a/MicroBlink.framework/Headers/PPDocumentDetectorSettings.h b/MicroBlink.framework/Headers/PPDocumentDetectorSettings.h index b1098fd1..60c2f8df 100644 --- a/MicroBlink.framework/Headers/PPDocumentDetectorSettings.h +++ b/MicroBlink.framework/Headers/PPDocumentDetectorSettings.h @@ -1,50 +1,3 @@ -// -// PPDocumentDetectorSettings.h -// BlinkIdFramework -// -// Created by Jura on 06/10/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPDetectorSettings.h" - -#import "PPDocumentSpecification.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings for document detector - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPDocumentDetectorSettings : PPDetectorSettings - -/** - * Defines how many times the same document should be detected before the detector - * returns this document as a result of the deteciton - * - * Higher number means more reliable detection, but slower processing - */ -@property (nonatomic) NSUInteger numStableDetectionsThreshold; - -/** - * Designated initializer, creates the object with a given threshold for number of stable detections - * - * @param threshold number of stable detections - * - * @return initialized object - */ -- (instancetype)initWithNumStableDetectionsThreshold:(NSUInteger)threshold NS_DESIGNATED_INITIALIZER; - -// Unavailable initializer -- (instancetype)initWithSettings:(DetectorSettingsImpl*)settings NS_UNAVAILABLE; - -/** - * Sets the document specifications. Document specifications describe the images that should be returned by - * the detectior. - * - * @param documentSpecifications document specifications - */ -- (void)setDocumentSpecifications:(NSArray<__kindof PPDocumentSpecification *> *)documentSpecifications; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:dfe402b45c011ab54afde280fc6c8ce9c9635fdaeaa65a67b503dc2469e2bfb6 +size 1397 diff --git a/MicroBlink.framework/Headers/PPDocumentSpecification.h b/MicroBlink.framework/Headers/PPDocumentSpecification.h index 21327065..de447126 100644 --- a/MicroBlink.framework/Headers/PPDocumentSpecification.h +++ b/MicroBlink.framework/Headers/PPDocumentSpecification.h @@ -1,175 +1,3 @@ -// -// PPDocument.h -// BlinkIdFramework -// -// Created by Jura on 07/01/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#import - -#import "PPDocumentDecodingInfo.h" - -NS_ASSUME_NONNULL_BEGIN - -struct DocumentImpl; -typedef struct DocumentImpl DocumentImpl; - -/** - * Struct which defines a range on the image - */ -typedef struct _PPRange { - CGFloat start; - CGFloat stop; -} PPRange; - -/** - * Method which creates a range structure - */ -NS_INLINE PPRange PPMakeRange(CGFloat start, CGFloat stop) { - PPRange r; - r.start = start; - r.stop = stop; - return r; -} - -/** - * Struct which defines a scale which detector searches on the image - */ -typedef struct _PPScale { - CGFloat scale; - CGFloat tolerance; -} PPScale; - -/** - * Method which creates a scale structure - */ -NS_INLINE PPScale PPMakeScale(CGFloat scale, CGFloat tolerance) { - PPScale r; - r.scale = scale; - r.tolerance = tolerance; - return r; -} - -/** - * Enum of different scanning modes: Landscape, Portrait and Auto(both) - */ -typedef NS_ENUM(NSUInteger, PPScanningMode) { - - /** Detects document in both directions */ - PPScanningModeAuto, - - /** Detects document in landscape direction */ - PPScanningModeLandscape, - - /** Detects document in portrait direction */ - PPScanningModePortrait, -}; - -/** Presets which can be used to instantiate document specification for a specific document format */ -typedef NS_ENUM(NSUInteger, PPDocumentPreset) { - - /** Preset for detecting ID cards */ - PPDocumentPresetId1Card, - - /** Preset for detecting cheques */ - PPDocumentPresetCheque, - - /** Preset for detecting A4 documents in portrait */ - PPDocumentPresetA4Portrait, - - /** Preset for detecting A4 documents in landscape */ - PPDocumentPresetA4Landscape, -}; - -/** - * Document class describes a document which is being detected by DocumentDetector. - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPDocumentSpecification : NSObject - -// internal implementation -@property (nonatomic, readonly, assign) DocumentImpl *documentImpl; - -/** - * Use this initializer for specifiying a document format. - * - * @param aspectRatio Aspect ratio of the document. Calculated as width / height - * @param decodingInfo Decoding info for the document - * - * @return initialized object - */ -- (instancetype)initWithAspectRatio:(CGFloat)aspectRatio - decodingInfo:(PPDocumentDecodingInfo *)decodingInfo; - -// used for internal initialization -- (instancetype)initWithDocument:(DocumentImpl *)documentImpl NS_DESIGNATED_INITIALIZER; - -// unavailable initializer -- (instancetype)init NS_UNAVAILABLE; - -/** - * Factory method which creates Document specification based on a preset - * - * @param preset document preset - * - * @return new instance for a given document preset - */ -+ (instancetype)newFromPreset:(PPDocumentPreset)preset; - -/** - * Sets scale and scale tolerance that will be used when detecting document in both orientations. - */ -- (void)setPortraitAndLandscapeScale:(PPScale)scale; - -/** - * Sets the decoding information - * - * @param decodingInfo decoding information - */ -- (void)setDecodingInfo:(PPDocumentDecodingInfo *)decodingInfo; - -/** - * Maximum angle for document detection - * - * Default 25.0 - */ -@property (nonatomic, assign) CGFloat maxAngle; - -/** - * Scale and scale tolerance that will be used when detecting document in portrait orientation. - * - * Default: PPMakeScale(1.0, 0.0) - */ -@property (nonatomic, assign) PPScale portraitScale; - -/** - * Scale and scale tolerance that will be used when detecting document in landscape orientation. - * - * Default: PPMakeScale(1.0, 0.0) - */ -@property (nonatomic, assign) PPScale landscapeScale; - -/** - * Scanning mode that defines in which orientations can this document be detected. - * - * Default: PPScanningModeAuto - */ -@property (nonatomic, assign) PPScanningMode scanningMode; - -/** - * Percentage of possible document offset on x axis. - * - * Default: PPMakeRange(-1, -1); - */ -@property (nonatomic, assign) PPRange xRange; - -/** - * Percentage of possible document offset on y axis. - * - * Default: PPMakeRange(-1, -1); - */ -@property (nonatomic, assign) PPRange yRange; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:6d39a2f41dcbd1fc864abe0bf65accb6d3748ece1351af735dc730cdbde8a2d6 +size 4198 diff --git a/MicroBlink.framework/Headers/PPEmailOcrParserFactory.h b/MicroBlink.framework/Headers/PPEmailOcrParserFactory.h new file mode 100644 index 00000000..063f1518 --- /dev/null +++ b/MicroBlink.framework/Headers/PPEmailOcrParserFactory.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79fd567496cb389075d02d6b6e8e5dc701ca2c61514b56d2775d3daa5e603910 +size 307 diff --git a/MicroBlink.framework/Headers/PPEudlCountry.h b/MicroBlink.framework/Headers/PPEudlCountry.h new file mode 100644 index 00000000..56148776 --- /dev/null +++ b/MicroBlink.framework/Headers/PPEudlCountry.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dbebb4334f94cb138ddee52563cfb281125c92eca0817d50b70fbf66c4ab481 +size 504 diff --git a/MicroBlink.framework/Headers/PPEudlRecognizerResult.h b/MicroBlink.framework/Headers/PPEudlRecognizerResult.h new file mode 100644 index 00000000..13c52caf --- /dev/null +++ b/MicroBlink.framework/Headers/PPEudlRecognizerResult.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21730415e817ca134ac126dd4d28e7548df1639990d10612ee279ce26a1a2e3e +size 1426 diff --git a/MicroBlink.framework/Headers/PPEudlRecognizerSettings.h b/MicroBlink.framework/Headers/PPEudlRecognizerSettings.h new file mode 100644 index 00000000..a113dda6 --- /dev/null +++ b/MicroBlink.framework/Headers/PPEudlRecognizerSettings.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c741c0dfb261131e69877cb687e9455243586530e908269993ff5eac56aa384f +size 1841 diff --git a/MicroBlink.framework/Headers/PPFaceDetectorResult.h b/MicroBlink.framework/Headers/PPFaceDetectorResult.h new file mode 100644 index 00000000..b3b83eaf --- /dev/null +++ b/MicroBlink.framework/Headers/PPFaceDetectorResult.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c10dab9be66db27d336e4ca8287ebf1743097bc333eea9e703f8209758c6742c +size 441 diff --git a/MicroBlink.framework/Headers/PPIbanOcrParserFactory.h b/MicroBlink.framework/Headers/PPIbanOcrParserFactory.h new file mode 100644 index 00000000..1e99da01 --- /dev/null +++ b/MicroBlink.framework/Headers/PPIbanOcrParserFactory.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ba0632d4d4d03e517eef966d5255dc60d2fd06a3007af8a4178a66b82ee80e1 +size 411 diff --git a/MicroBlink.framework/Headers/PPImageMetadata.h b/MicroBlink.framework/Headers/PPImageMetadata.h index 4fde9cee..3a5d8c73 100644 --- a/MicroBlink.framework/Headers/PPImageMetadata.h +++ b/MicroBlink.framework/Headers/PPImageMetadata.h @@ -1,25 +1,3 @@ -// -// PPImageMetadata.h -// PhotoPayFramework -// -// Created by Jura on 02/03/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPMetadata.h" -#import - -NS_ASSUME_NONNULL_BEGIN - -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPImageMetadata : PPMetadata - -@property (nonatomic, assign, readonly) UIImageOrientation orientation; - -- (instancetype)initWithName:(NSString *)name - orientation:(UIImageOrientation)orientation; - -- (UIImage*)image; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:7835de8b9c6ee0637c5127bb011141fcc9350d84259e7bfbd3bee2ec4e520760 +size 518 diff --git a/MicroBlink.framework/Headers/PPLicenseSettings.h b/MicroBlink.framework/Headers/PPLicenseSettings.h index 449c6fc4..45ce56fc 100644 --- a/MicroBlink.framework/Headers/PPLicenseSettings.h +++ b/MicroBlink.framework/Headers/PPLicenseSettings.h @@ -1,52 +1,3 @@ -// -// PPLicenseSettings.h -// PhotoPayFramework -// -// Created by Jura on 24/02/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import -#import "PPMicroBlinkDefines.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings class containing License information - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPLicenseSettings : NSObject - -/** - * License key for unlocking the scanning library - */ -@property (nonatomic, strong, nullable) NSString *licenseKey; - -/** - * If the license is Enterprise (for more than one app!), you will also need to set the licensee para, - * Otherwise keep this value nil! - */ -@property (nonatomic, strong, nullable) NSString *licensee; - -/** - * Designated initializer for regular licenses - * - * @param licenseKey the key - * - * @return license settings instance - */ -- (instancetype)initWithLicenseKey:(nullable NSString *)licenseKey; - -/** - * Designated initializer for Enterprise licenses - * - * @param licenseKey the key - * @param licensee name of the licensee - * - * @return license settings instance - */ -- (instancetype)initWithLicenseKey:(nullable NSString *)licenseKey - licensee:(nullable NSString *)licensee; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:5ae31e8e82d4d7dbec8c7964d287927c838b913a8ec1056104536de13f717d8a +size 1238 diff --git a/MicroBlink.framework/Headers/PPMetadata.h b/MicroBlink.framework/Headers/PPMetadata.h index 38b55797..5b88aa5d 100644 --- a/MicroBlink.framework/Headers/PPMetadata.h +++ b/MicroBlink.framework/Headers/PPMetadata.h @@ -1,22 +1,3 @@ -// -// PPMetadata.h -// PhotoPayFramework -// -// Created by Jura on 02/03/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import -#import "PPMicroBlinkDefines.h" - -NS_ASSUME_NONNULL_BEGIN - -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMetadata : NSObject - -@property (nonatomic, strong, readonly) NSString *name; - -- (instancetype)initWithName:(NSString *)name; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:0165c9717c68c9f1eeba32e451ecbdbea8d80d046f4f42984250d1e67738d1f0 +size 429 diff --git a/MicroBlink.framework/Headers/PPMetadataSettings.h b/MicroBlink.framework/Headers/PPMetadataSettings.h index 2f523576..02da6203 100644 --- a/MicroBlink.framework/Headers/PPMetadataSettings.h +++ b/MicroBlink.framework/Headers/PPMetadataSettings.h @@ -1,119 +1,3 @@ -// -// PPMetadataSettings.h -// PhotoPayFramework -// -// Created by Jura on 25/02/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import - -#import "PPMicroBlinkDefines.h" - -#import "PPMetadata.h" -#import "PPImageMetadata.h" -#import "PPTextMetadata.h" - -NS_ASSUME_NONNULL_BEGIN - -@class PPDebugMetadata; - -/** - * Settings class containing information which metadata is captured in the scanning process - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMetadataSettings : NSObject - -/** - * If YES, currently processed video frame will be captured. - * TODO: tell which type exactly - * - * Default: NO - */ -@property (nonatomic, assign) BOOL currentFrame; - -/** - * If YES, image on which scan gave valid scaning result will be saved - * TODO: tell which type exactly - * - * Default: NO - */ -@property (nonatomic, assign) BOOL successfulFrame; - -/** - * If YES, dewarped images in the recognition process will be saved - * TODO: tell which type exactly - * - * Default: NO - */ -@property (nonatomic, assign) BOOL dewarpedImage; - -/** - * If not nil, this object will tell which debug metadata should be saved - * - * Default: instance obtained using PPDebugMetadata init method. - */ -@property (nonatomic, strong) PPDebugMetadata* debugMetadata; - -/** - * Designated initializer. Initializes the object with default settings (see above for defaults) - * - * @return object initialized with default values. - */ -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -@interface PPDebugMetadata : NSObject - -/** - * If YES, image whichs shows debug information about document detection will be saved - * - * Default: NO - */ -@property (nonatomic, assign) BOOL debugDetectionFrame; - -/** - * If YES, image which is used as an input for the OCR will be saved - * - * Default: NO - */ -@property (nonatomic, assign) BOOL debugOcrInputFrame; - -/** - * If YES, images with dewarped elements will be saved - * - * Default: NO - */ -@property (nonatomic, assign) BOOL debugDewarpedElements; - -/** - * If YES, OCR data in xml form will be saved - * - * Default: NO - */ -@property (nonatomic, assign) BOOL ocrData; - -/** - * If YES, Recognition data in xml form will be saved - * - * Default: NO - */ -@property (nonatomic, assign) BOOL recognitionData; - -/** - * If YES, device data in xml form will be saved - * - * Default: NO - */ -@property (nonatomic, assign) BOOL deviceData; - -/** - * Designated initializer. Initializes the object with default settings (see above for defaults) - * - * @return object initialized with default values. - */ -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:7e13067fd332feaf940a6ea742db531e02376a365db396c03c49e0b74f683eb0 +size 2610 diff --git a/MicroBlink.framework/Headers/PPMicroBlinkDefines.h b/MicroBlink.framework/Headers/PPMicroBlinkDefines.h index ab9a491d..26c56459 100644 --- a/MicroBlink.framework/Headers/PPMicroBlinkDefines.h +++ b/MicroBlink.framework/Headers/PPMicroBlinkDefines.h @@ -1,21 +1,3 @@ -// -// PPMicroBlinkDefines.h -// BlinkIdFramework -// -// Created by Jura on 04/01/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#ifndef PPMicroBlinkDefines_h -#define PPMicroBlinkDefines_h - -#ifdef __cplusplus -#define PP_EXTERN extern "C" __attribute__((visibility ("default"))) -#else -#define PP_EXTERN extern __attribute__((visibility ("default"))) -#endif - -#define PP_CLASS_AVAILABLE_IOS(_ios) NS_CLASS_AVAILABLE_IOS(_ios) -#define PP_CLASS_DEPRECATED_IOS(_iosIntro, _iosDep, ...) NS_CLASS_DEPRECATED(NA, NA, _iosIntro, _iosDep, __VA_ARGS__) - -#endif /* PPMicroBlinkDefines_h */ +version https://git-lfs.github.com/spec/v1 +oid sha256:472052d60b05d9a423dc9df3911a132353c73e37a3a44b23a60aad55738797d7 +size 1641 diff --git a/MicroBlink.framework/Headers/PPModernBaseOverlayViewController.h b/MicroBlink.framework/Headers/PPModernBaseOverlayViewController.h index a633863c..095c70a2 100644 --- a/MicroBlink.framework/Headers/PPModernBaseOverlayViewController.h +++ b/MicroBlink.framework/Headers/PPModernBaseOverlayViewController.h @@ -1,26 +1,3 @@ -// -// PPModernBaseOverlayViewController.h -// PhotoPayFramework -// -// Created by Jura on 10/10/14. -// Copyright (c) 2014 MicroBlink Ltd. All rights reserved. -// - -#import "PPBaseOverlayViewController.h" - -NS_ASSUME_NONNULL_BEGIN - -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPModernBaseOverlayViewController : PPBaseOverlayViewController - -@property (nonatomic, strong) UIButton *cancelButton; -@property (nonatomic, strong) UIButton *torchButton; - -- (void)applyViewShadow:(UIView*)view; - -- (void)applyViewShadow:(UIView*)view radius:(CGFloat)radius; - -- (void)applyFrameWithTouchInset:(UIButton*)button frame:(CGRect)frame inset:(CGSize)inset; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:a3341a10e0a402e5f75dac5a4c3b3fd2234880cf8ad10c8518ecb5aaded7534a +size 666 diff --git a/MicroBlink.framework/Headers/PPModernOcrResultOverlaySubview.h b/MicroBlink.framework/Headers/PPModernOcrResultOverlaySubview.h index 128ca484..4314a6c9 100644 --- a/MicroBlink.framework/Headers/PPModernOcrResultOverlaySubview.h +++ b/MicroBlink.framework/Headers/PPModernOcrResultOverlaySubview.h @@ -1,25 +1,3 @@ -// -// PPModernOcrResultOverlaySubview.h -// PhotoPayFramework -// -// Created by Marko Mihovilić on 05/09/14. -// Copyright (c) 2014 MicroBlink Ltd. All rights reserved. -// - -#import "PPOverlaySubview.h" - -NS_ASSUME_NONNULL_BEGIN - -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPModernOcrResultOverlaySubview : PPOverlaySubview - -@property (strong, nonatomic) UIColor *foregroundColor; - -@property (strong, nonatomic) UIColor *tintColor; - -@property (assign, nonatomic) BOOL shouldIgnoreFastResults; - -@property (assign, nonatomic) CGFloat charFadeInDuration; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:a94762f312d311017daee238ab8fb02e95160e0ad1b0a05f63627907f063e18d +size 577 diff --git a/MicroBlink.framework/Headers/PPModernViewfinderOverlaySubview.h b/MicroBlink.framework/Headers/PPModernViewfinderOverlaySubview.h index c8f5da12..d6821705 100644 --- a/MicroBlink.framework/Headers/PPModernViewfinderOverlaySubview.h +++ b/MicroBlink.framework/Headers/PPModernViewfinderOverlaySubview.h @@ -1,15 +1,3 @@ -// -// PPModernViewfinderOverlaySubview.h -// PhotoPayFramework -// -// Created by Marko Mihovilić on 02/09/14. -// Copyright (c) 2014 MicroBlink Ltd. All rights reserved. -// - -#import "PPOverlaySubview.h" - -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPModernViewfinderOverlaySubview : PPOverlaySubview - -@property (nonatomic, assign) BOOL moveable; - -@end +version https://git-lfs.github.com/spec/v1 +oid sha256:cf5516c28547f3e5798e2acb51bd6331b35ea351c10bb1db98956b178ce5183e +size 456 diff --git a/MicroBlink.framework/Headers/PPMrtdDetectorResult.h b/MicroBlink.framework/Headers/PPMrtdDetectorResult.h index 99231437..e49036a7 100644 --- a/MicroBlink.framework/Headers/PPMrtdDetectorResult.h +++ b/MicroBlink.framework/Headers/PPMrtdDetectorResult.h @@ -1,63 +1,3 @@ -// -// PPOcrLineDetectorResult.h -// BlinkIdFramework -// -// Created by Jura on 10/01/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#import "PPQuadDetectorResult.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Detection code for MRTD detection - */ -typedef NS_ENUM(NSUInteger, PPMrtdDetectionCode) { - - /** Failed detection */ - PPMrtdDetectionCodeFail, - - /** Machine Readable Zone, three Machine Readable Lines with 30 characters each */ - PPMrtdDetectionCodeMRZTD1, - - /** Machine Readable Zone, two Machine Readable Lines with 36 characters each */ - PPMrtdDetectionCodeMRZTD2, - - /** Machine Readable Zone, two Machine Readable Lines with 44 characters each */ - PPMrtdDetectionCodeMRZTD3, - - /** Machine Readable Travel Document (Full Card), three Machine Readable Lines with 30 characters each */ - PPMrtdDetectionCodeMRTDTD1, - - /** Machine Readable Travel Document (Full Card), two Machine Readable Lines with 36 characters each */ - PPMrtdDetectionCodeMRTDTD2, - - /**Machine Readable Travel Document (Full Card), two Machine Readable Lines with 44 characters each */ - PPMrtdDetectionCodeMRTDTD3, - -}; - -/** - * Result of MRTD detector - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMrtdDetectorResult : PPQuadDetectorResult - -/** - * Detection code of MRTD detection - */ -@property (nonatomic) PPMrtdDetectionCode mrtdDetectionCode; - -/** - * Number of characters per line - */ -@property (nonatomic) NSArray *elementsCountPerLine; - -/** - * Confidence in detector result - */ -@property (nonatomic) CGFloat confidence; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:e12ad9ce08c2aae238cf807b25ec4bc8a64fe4866dd6ac1b9df18c1500b9c18c +size 1592 diff --git a/MicroBlink.framework/Headers/PPMrtdDetectorSettings.h b/MicroBlink.framework/Headers/PPMrtdDetectorSettings.h index 7e54ba41..c5c595d5 100644 --- a/MicroBlink.framework/Headers/PPMrtdDetectorSettings.h +++ b/MicroBlink.framework/Headers/PPMrtdDetectorSettings.h @@ -1,53 +1,3 @@ -// -// PPMrtdDetectorSettings.h -// BlinkIdFramework -// -// Created by Jura on 07/10/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPQuadDetectorSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMrtdDetectorSettings : PPQuadDetectorSettings - -/** - * Initializes MRTD Detector settings with document decoding information - * - * @param info information about parts of the image which will be decoded - * - * @return initialized object - */ -- (instancetype)initWithDocumentDecodingInfo:(PPDocumentDecodingInfo *)info NS_DESIGNATED_INITIALIZER; - -/** - * Initializes MRTD detector with default document decoding information - * - * Default info contains: - * - One entry - * - location - CGRect(0.f, 0.f, 1.f, 1.f) - * - dewarped height - 700U - * - * - * The exact code which initializes default info is: - * PPDocumentDecodingInfo *info = [[PPDocumentDecodingInfo alloc] init]; - * [info addEntry:[[PPDocumentDecodingInfoEntry alloc] initWithLocation:CGRectMake(0.0, 0.0, 1.0, 1.0) dewarpedHeight:100U]]; - * - * @return initialized object - */ -- (instancetype)init; - -// Unavailable initializer from superclass -- (instancetype)initWithSettings:(DetectorSettingsImpl*)settings NS_UNAVAILABLE; - -/** - * If YES, the whole document is detected, as opposed to just MRZ zone on the bottom of the document - - * Default: YES. - */ -@property (nonatomic) BOOL detectFullDocument; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:576d0db8ccc271fd4c04187cea102bec9e498e13352f27d1152c7acea56013ee +size 1454 diff --git a/MicroBlink.framework/Headers/PPMrtdRecognizerResult.h b/MicroBlink.framework/Headers/PPMrtdRecognizerResult.h index a73db374..e1048530 100644 --- a/MicroBlink.framework/Headers/PPMrtdRecognizerResult.h +++ b/MicroBlink.framework/Headers/PPMrtdRecognizerResult.h @@ -1,140 +1,3 @@ -// -// PPMrtdRecognizerResult.h -// MicroBlinkFramework -// -// Created by Jura on 28/09/14. -// Copyright (c) 2014 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerResult.h" -#import "PPOcrLayout.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Class representing common values obtained when scanning machine readable travel documents (MRTDs) - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMrtdRecognizerResult : PPRecognizerResult - -/** - * Boolean value which denotes that MRTD result is successfully parsed. When the result is parsed, all - * properties below are present. - * - * If in the PPMrtdRecognizerSettings you specified allowUnparsedResults = YES, then it can happen that - * MRTDRecognizerResult is not parsed. When this happens, this property will be equal to YES. - * - * In that case, you can use rawOcrResult property to obtain the raw result of the OCR process, so you can - * implement MRTD parsing in your application. - * - * @return YES if MRTD Recognizer result was successfully parsed and all the fields are extracted. NO otherwise. - */ -- (BOOL)isParsed; - -/** - * Returns three-letter code which indicate the issuing State. - * Three-letter codes are based on Alpha-3 codes for entities specified in - * ISO 3166-1, with extensions for certain States. - * - * @return issuer code - */ -- (NSString *)issuer; - -/** - * Unique number of the document. Document number contains up to 9 characters. - * - * @return documentNumber - */ -- (NSString *)documentNumber; - -/** - * Returns document code. Document code contains two characters. For MRTD the first character - * shall be A, C or I. The second character shall be discretion of the issuing State or organization - * except that V shall not be used, and C shall not be used after A except in the crew member - * certificate. On machine-readable passports (MRP) first character shall be P to designate an MRP. - * One additional letter may be used, at the discretion of the issuing State or organization, - * to designate a particular MRP. If the second character position is not used for this purpose, it - * shall be filled by the filter character <. - * - * @return documentCode - */ -- (NSString *)documentCode; - -/** - * Returns date of expiry of the document in format YYMMDD. - * - * @return date of expiry - */ -- (NSString *)dateOfExpiry; - -/** - * Returns the primary indentifier. If there is more than one component, they are separated with space. - * - * @return primary id of a card holder. - */ -- (NSString *)primaryId; - -/** - * Returns the secondary identifier. If there is more than one component, they are separated with space. - * - * @return secondary id of a card holder - */ -- (NSString *)secondaryId; - -/** - * Returns holder's date of birth in format YYMMDD. - * - * @return date of birth - */ -- (NSString *)dateOfBirth; - -/** - * Returns nationality of the holder represented by a three-letter code. Three-letter codes are based - * on Alpha-3 codes for entities specified in ISO 3166-1, with extensions for certain States. - * - * @return nationality - */ -- (NSString *)nationality; - -/** - * Returns sex of the card holder. Sex is specified by use of the single initial, capital - * letter F for female, M for male or < for unspecified. - * - * @return sex of the card holder - */ -- (NSString *)sex; - -/** - * Returns first optional data. - * Returns nil or empty string if not available. - * - * @return optional data 1 - */ -- (NSString *)opt1; - -/** - * Returns first optional data. - * Returns nil or empty string if not available. - * - * @return optional data 2 - */ -- (NSString *)opt2; - -/** - * Returns the entire Machine Readable Zone text from ID. This text is usually used for parsing - * other elements. - */ -- (NSString *)mrzText; - -/** - * Raw OCR layout from which the MRTD data was parsed. - * - * If PPMRTDRecognizerSettings allowUnparsedResults is used, you can use this property to implement - * your custom MRTD parsing algorithm - * - * @return OCR layout from which the MRTD data was parsed - */ -- (PPOcrLayout *)rawOcrLayout; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:b1c086bc5655159d8ae1f9ea18f92ddaeea68985380d903e8f896d734d838e51 +size 4004 diff --git a/MicroBlink.framework/Headers/PPMrtdRecognizerSettings.h b/MicroBlink.framework/Headers/PPMrtdRecognizerSettings.h index 28b749a6..0079033c 100644 --- a/MicroBlink.framework/Headers/PPMrtdRecognizerSettings.h +++ b/MicroBlink.framework/Headers/PPMrtdRecognizerSettings.h @@ -1,68 +1,3 @@ -// -// PPMrtdRecognizerSettings.h -// PhotoPayFramework -// -// Created by Jura on 26/02/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings class for configuring MRTD Recognizer - * - * MRTD Recognizer recognizer is used for scanning and parsing Machine readable travel documents. - * Typical MRTDs are passports, visas, ID cards. - * They can be recognized by two or three lines of monospace text, which contains all personal information. - * - * @see https://en.wikipedia.org/wiki/Machine-readable_passport - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMrtdRecognizerSettings : PPRecognizerSettings - -/** - * If YES, MrtdRecognizer will return MRTD results even if they are not parsed. - * - * Default NO. - * - * Setting this to YES will give you the chance to parse MRZ result, if Mrtd recognizer wasn't - * successful in parsing (this can happen since MRZ isn't always formatted accoring to ICAO Document 9303 standard. - * @see http://www.icao.int/Security/mrtd/pages/Document9303.aspx - * - * When YES, MrtdRecognizerResult will be returned with isParsed property set to NO, and with rawOcrLayout property set - * to the PPOcrLayout object which was the result of the OCR process. - * - * However, you should be careful when this property is set to YES, since obtained OcrLayout can contain OCR errors (for example - * (0 <-> O, 2 <-> Z, etc.). If you set this to YES, then you need to perform your own parsing and error correction. - * - * If you set this to YES, we suggest the following approach in your result callback - * - * - obtain mrtdResult - * - if [mrtdResult isParsed] - * - present result and return - * - else if mrtdResult can be parsed with your custom parsing algorithm - * - present your custom results and return - * - else continue scanning since MRTD result cannot be parsed at all - */ -@property (nonatomic, assign) BOOL allowUnparsedResults; - -/** - * If YES, and detectMachineReadableZonePosition is YES, MRTD recognizer will determine the position of the whole - * MRTD document, based on the position of the machine readable zone. - * - * Also, MRTD recognizer will dewarp and crop the image around the MRTD. - * - * This is useful if you're at the same time obtaining Dewarped image metadata, since it allows you to obtain dewarped and cropped - * images of MRTD documents. Dewarped images are returned to scanningViewController:didOutputMetadata: callback, - * as PPImageMetadata objects with name @"MRTD" - * - * If NO, or if detectMachineReadableZonePosition is NO, this logic is not performed. - * - * Default: NO. - */ -@property (nonatomic, assign) BOOL dewarpFullDocument; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:bd7ce4515f8f4e4cd1e35112c6c0a74ce6db30fb0143cf597a8b5d519792390b +size 2718 diff --git a/MicroBlink.framework/Headers/PPMultiDetectorResult.h b/MicroBlink.framework/Headers/PPMultiDetectorResult.h index 0daf8b92..8e18d90d 100644 --- a/MicroBlink.framework/Headers/PPMultiDetectorResult.h +++ b/MicroBlink.framework/Headers/PPMultiDetectorResult.h @@ -1,41 +1,3 @@ -// -// PPMultiDetectorResult.h -// BlinkIdFramework -// -// Created by Jura on 10/01/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#import "PPDetectorResult.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Result of detection of multi detector object - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMultiDetectorResult : PPDetectorResult - -/** - * Array of detector results - */ -@property (nonatomic) NSArray<__kindof PPDetectorResult*>* detectorResults; - -/** - * Obtains result at index - * - * @param index of the result - * - * @return detector result at given index - */ -- (PPDetectorResult *)resultAtIndex:(NSUInteger)index; - -/** - * number of results in multi detector result - * - * @return number of results - */ -- (NSUInteger)count; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:2f4fbfb13872d0f1c2f007aa3c76b34718c3bd01bd108bb03f1e0250a4edeee9 +size 765 diff --git a/MicroBlink.framework/Headers/PPMultiDetectorSettings.h b/MicroBlink.framework/Headers/PPMultiDetectorSettings.h index 2b95d516..cd09d53f 100644 --- a/MicroBlink.framework/Headers/PPMultiDetectorSettings.h +++ b/MicroBlink.framework/Headers/PPMultiDetectorSettings.h @@ -1,30 +1,3 @@ -// -// PPMultiDetectorSettings.h -// BlinkIdFramework -// -// Created by Jura on 06/10/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPDetectorSettings.h" - -/** - * Settings for detector which combines multiple detectors inside - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMultiDetectorSettings : PPDetectorSettings - -- (instancetype)initWithSettingsArray:(NSArray<__kindof PPDetectorSettings *> *)settingsArray; - -/** - * Array of contained detector settings - */ -@property (nonatomic, readonly) NSArray<__kindof PPDetectorSettings *> * settingsArray; - -/** - * If YES, detector will try to find all detection results based on a given set of detector settings - * - * Default: NO - */ -@property (nonatomic) BOOL allowMultipleResults; - -@end +version https://git-lfs.github.com/spec/v1 +oid sha256:a6a227a8a27db354093e1d094e0f52309d81cd92d51ee2600002701449415903 +size 759 diff --git a/MicroBlink.framework/Headers/PPMyKadRecognizerResult.h b/MicroBlink.framework/Headers/PPMyKadRecognizerResult.h index 140c0318..f818da3d 100644 --- a/MicroBlink.framework/Headers/PPMyKadRecognizerResult.h +++ b/MicroBlink.framework/Headers/PPMyKadRecognizerResult.h @@ -1,61 +1,3 @@ -// -// PPMyKadRecognizerResult.h -// BlinkIdFramework -// -// Created by Jura on 16/12/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerResult.h" - -NS_ASSUME_NONNULL_BEGIN - -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMyKadRecognizerResult : PPRecognizerResult - -/** - * Returns NRIC number (National Registration Identity Card Number) - * - * @see https://en.wikipedia.org/wiki/Malaysian_identity_card#Structure_of_the_National_Registration_Identity_Card_Number_.28NRIC.29 - * - * @return NRIC number - */ -- (NSString *)nricNumber; - -/** - * Returns owner address - * - * @return owner address - */ -- (NSString *)ownerAddress; - -/** - * Returns owner birth date (YYMMDD format) - * - * @return ownedr birth date - */ -- (NSString *)ownerBirthDate; - -/** - * Returns owner full name - * - * @return owner full name - */ -- (NSString *)ownerFullName; - -/** - * Returns owner religion if written on MyKad - * - * @return owner religion - */ -- (NSString *)ownerReligion; - -/** - * Returns owner sex (M for male, F for female) - * - * @return owner sex - */ -- (NSString *)ownerSex; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:b5180b8190f46dc45c715f76322bf19daaa1292afd17d30ec6ceaae6bf1cabe0 +size 1113 diff --git a/MicroBlink.framework/Headers/PPMyKadRecognizerSettings.h b/MicroBlink.framework/Headers/PPMyKadRecognizerSettings.h index 68a1ea44..cfa6e8b8 100644 --- a/MicroBlink.framework/Headers/PPMyKadRecognizerSettings.h +++ b/MicroBlink.framework/Headers/PPMyKadRecognizerSettings.h @@ -1,32 +1,3 @@ -// -// PPMyKadRecognizerSettings.h -// BlinkIdFramework -// -// Created by Jura on 16/12/15. -// Copyright © 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings class for configuring MyKad Recognizer - * - * MyKadRecognizer is used for recognizing and extracing data from Malaysian ID documents which is compulsory ID document in Malaysia. - * Recognizer reads all the contents on the front side of the ID document. - * - * @see https://en.wikipedia.org/wiki/Malaysian_identity_card - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPMyKadRecognizerSettings : PPRecognizerSettings - -/** - * If YES, full image of the document will be dewarped and returned via the API. - * - * Default: NO. - */ -@property (nonatomic, assign) BOOL showFullDocument; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:822f8d4e004bb8193965c4bb6d8b894bf63d0ee706ec85819130ac527fab7c00 +size 831 diff --git a/MicroBlink.framework/Headers/PPOcrEngineOptions.h b/MicroBlink.framework/Headers/PPOcrEngineOptions.h new file mode 100644 index 00000000..309b82ff --- /dev/null +++ b/MicroBlink.framework/Headers/PPOcrEngineOptions.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7558b6d2db05ea7511e18d5dbc2e795fbc5d4f08e1361d037e12410027d9414 +size 3922 diff --git a/MicroBlink.framework/Headers/PPOcrFont.h b/MicroBlink.framework/Headers/PPOcrFont.h index 4c3addcd..65d9f91b 100644 --- a/MicroBlink.framework/Headers/PPOcrFont.h +++ b/MicroBlink.framework/Headers/PPOcrFont.h @@ -1,245 +1,3 @@ -// -// PPOcrFont.h -// BlinkOcrFramework -// -// Created by Jura on 29/07/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#ifndef BlinkOcrFramework_PPOcrFont_h -#define BlinkOcrFramework_PPOcrFont_h - -/** - * A list of fonts supported by BlinkOCR - */ -typedef NS_ENUM(NSUInteger, PPOcrFont) { - - /** Akzidenz Grotesk font */ - PP_OCR_FONT_AKZIDENZ_GROTESK, - - /** Arial font */ - PP_OCR_FONT_ARIAL, - - /** Arial black font */ - PP_OCR_FONT_ARIAL_BLACK, - - /** Arnhem font */ - PP_OCR_FONT_ARNHEM, - - /** Avant garde font */ - PP_OCR_FONT_AVANT_GARDE, - - /** Bembo font */ - PP_OCR_FONT_BEMBO, - - /** Bodoni font */ - PP_OCR_FONT_BODONI, - - /** Calibri font */ - PP_OCR_FONT_CALIBRI, - - /** Calibri bold font */ - PP_OCR_FONT_CALIBRI_BOLD, - - /** Chainprinter font */ - PP_OCR_FONT_CHAINPRINTER, - - /** Comic sans font */ - PP_OCR_FONT_COMIC_SANS, - - /** Concerto rounded SG font */ - PP_OCR_FONT_CONCERTO_ROUNDED_SG, - - /** Courier font */ - PP_OCR_FONT_COURIER, - - /** Courier bold font */ - PP_OCR_FONT_COURIER_BOLD, - - /** Courier medium bold */ - PP_OCR_FONT_COURIER_MEDIUM_BOLD, - - /** Courier new bold */ - PP_OCR_FONT_COURIER_NEW_BOLD, - - /** Courier new ce font */ - PP_OCR_FONT_COURIER_NEW_CE, - - /** Courier censored font */ - PP_OCR_FONT_COURIER_CONDENSED, - - /** Dejavu sans mono font */ - PP_OCR_FONT_DEJAVU_SANS_MONO, - - /** Din font */ - PP_OCR_FONT_DIN, - - /** Europa grotesk no 2 SB bold font */ - PP_OCR_FONT_EUROPA_GROTESK_NO_2_SB_BOLD, - - /** Eurostile font */ - PP_OCR_FONT_EUROSTILE, - - /** F25 bank printer bold font */ - PP_OCR_FONT_F25_BANK_PRINTER_BOLD, - - /** Franklin gothic font */ - PP_OCR_FONT_FRANKLIN_GOTHIC, - - /** Frutiger font */ - PP_OCR_FONT_FRUTIGER, - - /** Futura font */ - PP_OCR_FONT_FUTURA, - - /** Futura bold font */ - PP_OCR_FONT_FUTURA_BOLD, - - /** Garamond font */ - PP_OCR_FONT_GARAMOND, - - /** Georgia font */ - PP_OCR_FONT_GEORGIA, - - /** Gill sans font */ - PP_OCR_FONT_GILL_SANS, - - /** Helvetica font */ - PP_OCR_FONT_HELVETICA, - - /** Helvetica bold font */ - PP_OCR_FONT_HELVETICA_BOLD, - - /** Helvetica condensed light font */ - PP_OCR_FONT_HELVETICA_CONDENSED_LIGHT, - - /** Hypermarket font */ - PP_OCR_FONT_HYPERMARKET, - - /** Interstate font */ - PP_OCR_FONT_INTERSTATE, - - /** Latin modern math font */ - PP_OCR_FONT_LATIN_MODERN, - - /** Latin modern italic font */ - PP_OCR_FONT_LATIN_MODERN_ITALIC, - - /** Letter gothic font */ - PP_OCR_FONT_LETTER_GOTHIC, - - /** Lucida font */ - PP_OCR_FONT_LUCIDA, - - /** Lucida sans font */ - PP_OCR_FONT_LUCIDA_SANS, - - /** Matrix font */ - PP_OCR_FONT_MATRIX, - - /** Meta font */ - PP_OCR_FONT_META, - - /** Minion font */ - PP_OCR_FONT_MINION, - - /** OCR A font */ - PP_OCR_FONT_OCRA, - - /** OCR B font */ - PP_OCR_FONT_OCRB, - - /** Officina font */ - PP_OCR_FONT_OFFICINA, - - /** Optima font */ - PP_OCR_FONT_OPTIMA, - - /** Printf font */ - PP_OCR_FONT_PRINTF, - - /** Rockwell font */ - PP_OCR_FONT_ROCKWELL, - - /** Rotis sans serif font */ - PP_OCR_FONT_ROTIS_SANS_SERIF, - - /** Rotis serif font */ - PP_OCR_FONT_ROTIS_SERIF, - - /** Sabon font */ - PP_OCR_FONT_SABON, - - /** Stone font */ - PP_OCR_FONT_STONE, - - /** SV basic manual font */ - PP_OCR_FONT_SV_BASIC_MANUAL, - - /** Tahoma font */ - PP_OCR_FONT_TAHOMA, - - /** Tex gyre termes font */ - PP_OCR_FONT_TEX_GYRE_TERMES, - - /** Tex gyre termes italic font */ - PP_OCR_FONT_TEX_GYRE_TERMES_ITALIC, - - /** Sans mono condensed black font */ - PP_OCR_FONT_THE_SANS_MONO_CONDENSED_BLACK, - - /** Thesis font */ - PP_OCR_FONT_THESIS, - - /** Ticket de caisse font */ - PP_OCR_FONT_TICKET_DE_CAISSE, - - /** Times new roman font */ - PP_OCR_FONT_TIMES_NEW_ROMAN, - - /** Trajan font */ - PP_OCR_FONT_TRAJAN, - - /** Trinite font */ - PP_OCR_FONT_TRINITE, - - /** Univers font */ - PP_OCR_FONT_UNIVERS, - - /** Verdana font */ - PP_OCR_FONT_VERDANA, - - /** Voltaire font */ - PP_OCR_FONT_VOLTAIRE, - - /** Walbum font */ - PP_OCR_FONT_WALBAUM, - - /** Europa gro sb font */ - PP_OCR_FONT_EUROPA_GRO_SB, - - /** Europa gro sb light font */ - PP_OCR_FONT_EUROPA_GRO_SB_LIGHT, - - // SPECIAL FONTS - - /** MICR font */ - PP_OCR_FONT_MICR, - - /** Unknown font */ - PP_OCR_FONT_UNKNOWN, - - /** Any of the other listed fonts */ - PP_OCR_FONT_ANY, - - /** Unknown math font */ - PP_OCR_FONT_UNKNOWN_MATH, - - /** Font found on UKDL licenses */ - PP_OCR_FONT_UKDL_LIGHT, - - /** Must be last as it holds the number of available fonts */ - PP_OCR_FONT_COUNT, -}; - -#endif +version https://git-lfs.github.com/spec/v1 +oid sha256:fd6297ab7cacd3842a959aed45b301e63094bdd58d6c17d7ee6e4cff3840ae26 +size 4885 diff --git a/MicroBlink.framework/Headers/PPOcrLayout.h b/MicroBlink.framework/Headers/PPOcrLayout.h index 76550b85..f9a05a0f 100644 --- a/MicroBlink.framework/Headers/PPOcrLayout.h +++ b/MicroBlink.framework/Headers/PPOcrLayout.h @@ -1,293 +1,3 @@ -// -// PPOcrLayout.h -// MicroBlinkFramework -// -// Created by Jura on 01/02/14. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import -#import - -#import "PPOcrFont.h" - -#import "PPMicroBlinkDefines.h" - -@class PPOcrBlock; -@class PPOcrLine; -@class PPOcrChar; -@class PPPosition; - -NS_ASSUME_NONNULL_BEGIN - -/** - * Class describing the layour of the document on which the OCR was preformed. - * - * Ocr Layout contains one or mode OcrBlocks, each of which contains one or more OcrLines, - * Each of which contains one or more OcrChars. - * - * Ocr layout coordinates and boxes are given in the coordinate system of the image - * on which the OCR was performed - * - * @see PPOcrBlock - * @see PPOcrLine - * @see PPOcrChar - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPOcrLayout : NSObject - -/** - * Bounding box of the layout. Given in the coordinate system of the image on which OCR was performed. - */ -@property (nonatomic, assign) CGRect box; - -/** - * Ocr blocks of the layout - */ -@property (nonatomic, strong) NSArray *blocks; - -/** - * Tranformation matrix which transforms the coordinate system in which the OCR layout is given - * (i.e. coordinate system of the image) to the coordinate system of the device screen. - */ -@property (nonatomic, assign) CGAffineTransform transform; - -/** - * OCR layout was recognized from flipped image - */ -@property (nonatomic, assign) BOOL flipped; - -/** - * Initializer from blocks and transformation - * - * @param ocrBlocks ocr blocks - * @param transform transform from the image to device screen - * - * @return initialized ocr layout - */ -- (instancetype)initWithOcrBlocks:(NSArray *)ocrBlocks transform:(CGAffineTransform)transform; - -/** - * Initializer from blocks - * - * @param ocrBlocks ocr blocks - * - * @return initialized ocr layout - */ -- (instancetype)initWithOcrBlocks:(NSArray *)ocrBlocks; - -/** - * Helper method which returna a simple string representation of the ocr layout - * - * @return ocr layout converted to string - */ -- (NSString *)string; - -@end - -/** - * Class representing an Ocr Block. Block consists of one or more Ocr Lines. - * - * @see PPOcrLine - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPOcrBlock : NSObject - -/** - * Ocr lines of the block - */ -@property (nonatomic, strong) NSArray *lines; - -/** - * Initializer from lines - * - * @param ocrLines ocr lines - * - * @return initialized ocr block - */ -- (instancetype)initWithOcrLines:(NSArray *)ocrLines; - -/** - * Helper method which returna a simple string representation of the ocr block - * - * @return ocr block converted to string - */ -- (NSString *)string; - -@end - -/** - * Class representing an Ocr line. line consists of one or more Ocr chars - * - * @see PPOcrChar - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPOcrLine : NSObject - -/** - * Ocr chars of the line - */ -@property (nonatomic, strong) NSArray *chars; - -/** - * Initializer from chars - * - * @param ocrChars ocr chars - * - * @return initialized ocr line - */ -- (instancetype)initWithOcrChars:(NSArray *)ocrChars; - -/** - * Helper method which returna a simple string representation of the ocr line - * - * @return ocr line converted to string - */ -- (NSString *)string; - -@end - -/** - * Class representing an individual OCR character obtained in the OCR process. - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPOcrChar : NSObject - -/** - * Unicode value of the char - */ -@property (nonatomic, assign) unichar value; - -/** - * Position of the char on the image, in the coordinate system of the image - */ -@property (nonatomic, retain) PPPosition *position; - -/** - * Height of the char - */ -@property (nonatomic, assign) CGFloat height; - -/** - * YES if font is bold - */ -@property (nonatomic, assign, getter = isBold) BOOL bold; - -/** - * YES if font is italic - */ -@property (nonatomic, assign, getter = isItalic) BOOL italic; - -/** - * YES if char is uncertain - */ -@property (nonatomic, assign, getter = isUncertain) BOOL uncertain; - -/** - * Integer value representing OCR quality of the char - */ -@property (nonatomic, assign) NSInteger quality; - -/** - * Font of the character - */ -@property (nonatomic, assign) PPOcrFont font; - -/** - * Alternative characters which are possible instead of this character. - * - * In the list of characters, each char (unicode value), can appear multiple times, each time with different font. - * This means variant is uniquely defined with a combination of value and font properties. - * - * Each variant has quality property set, so you can use it to verify other options. - * - * @Warning If you use variants, please note you need to take font into account. - */ -@property (nonatomic, strong) NSSet *variants; - -/** - * Initializer for a char - * - * @param value unicode value - * @param position position on the image - * @param height height of the char - * - * @return initialized char - */ -- (instancetype)initWithValue:(unichar)value - position:(PPPosition *)position - height:(CGFloat)height; - -@end - -/** - * Class representing a position on the image. It's given as a box, with - * sides aligned to the sides of the image. - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPPosition : NSObject - -/** - * Upper left corner - */ -@property (nonatomic, assign) CGPoint ul; - -/** - * Upper right corner - */ -@property (nonatomic, assign) CGPoint ur; - -/** - * Lower left corner - */ -@property (nonatomic, assign) CGPoint ll; - -/** - * Lower right corner - */ -@property (nonatomic, assign) CGPoint lr; - -/** - * Initializer - * - * @param ul upper left corner - * @param ur upper right corner - * @param ll lower left cornder - * @param lr lower right corner - * - * @return initialized position - */ -- (instancetype)initWithUpperLeft:(CGPoint)ul - upperRight:(CGPoint)ur - lowerLeft:(CGPoint)ll - lowerRight:(CGPoint)lr; - -/** - * Creates a position with offset to a current position. Offset is added. - * - * @param offset Offset by which new position is displaced from the current one. - * It's specified with CGPoint, where x value defines x offset, and y value defines y offset - * - * @return position with offset - */ -- (PPPosition *)positionWithOffset:(CGPoint)offset; - -/** - * Helper method converting Position to CGRect - * - * @return Position converted to CGRect - */ -- (CGRect)rect; - -/** - * Helper method calculating the center of the Position - * - * @return center of the position. - */ -- (CGPoint)center; - -/** - * Helper method calculating the height of the position - * - * @return height of the position - */ -- (CGFloat)height; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:2ccf42f7dd900cf564ac02bac569dfac04539f31fa84cd543bb6cf83932cc094 +size 6551 diff --git a/MicroBlink.framework/Headers/PPOcrParserFactory.h b/MicroBlink.framework/Headers/PPOcrParserFactory.h new file mode 100644 index 00000000..4aa8e0ec --- /dev/null +++ b/MicroBlink.framework/Headers/PPOcrParserFactory.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9893ad65ded677b79e0c6096ead004ae60cdc47596e85cd7478771ca9488f725 +size 572 diff --git a/MicroBlink.framework/Headers/PPOcrRecognizerResult.h b/MicroBlink.framework/Headers/PPOcrRecognizerResult.h new file mode 100644 index 00000000..553af283 --- /dev/null +++ b/MicroBlink.framework/Headers/PPOcrRecognizerResult.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49636337c8f3a03ce2edc0978bf94b11300fcbb71f97f0b7d4ae7a3dd5e1df20 +size 1468 diff --git a/MicroBlink.framework/Headers/PPOcrRecognizerSettings.h b/MicroBlink.framework/Headers/PPOcrRecognizerSettings.h new file mode 100644 index 00000000..85e2fad6 --- /dev/null +++ b/MicroBlink.framework/Headers/PPOcrRecognizerSettings.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2abcbae557c9513fdaa4694f376c09b6c8f728b0536f249bf6521c84d70e7003 +size 986 diff --git a/MicroBlink.framework/Headers/PPOcrResultOverlaySubview.h b/MicroBlink.framework/Headers/PPOcrResultOverlaySubview.h index 88c31b89..4e305b11 100644 --- a/MicroBlink.framework/Headers/PPOcrResultOverlaySubview.h +++ b/MicroBlink.framework/Headers/PPOcrResultOverlaySubview.h @@ -1,20 +1,3 @@ -// -// PPOcrResultView.h -// PhotoPayFramework -// -// Created by Jura on 01/02/14. -// Copyright (c) 2014 MicroBlink Ltd. All rights reserved. -// - -#import -#import "PPOverlaySubview.h" - -NS_ASSUME_NONNULL_BEGIN - -@class PPOcrLayout; - -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPOcrResultOverlaySubview : PPOverlaySubview - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:652d6965966fe5df4f68764fc3dbb2f83a6a9efe70f53873afa5c09cf672fd85 +size 360 diff --git a/MicroBlink.framework/Headers/PPOverlaySubview.h b/MicroBlink.framework/Headers/PPOverlaySubview.h index e9fc9381..f146a16f 100644 --- a/MicroBlink.framework/Headers/PPOverlaySubview.h +++ b/MicroBlink.framework/Headers/PPOverlaySubview.h @@ -1,142 +1,3 @@ -// -// PPOverlaySubview.h -// BarcodeFramework -// -// Created by Jura on 06/06/14. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import -#import "PPDetectionStatus.h" -#import "PPRecognizerResult.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Protocol which all objects interested in receiving information about overlay subviews need to implement - */ -@protocol PPOverlaySubviewDelegate - -/** Delegate method called when animation starts */ -- (void)overlaySubviewAnimationDidStart:(id)overlaySubview; - -/** Delegate method called when animation finishes */ -- (void)overlaySubviewAnimationDidFinish:(id)overlaySubview; - -@end - -@class PPOcrLayout; -@class PPOverlayViewController; - -/** - * Common interface for all OverlaySubviews - */ -@protocol PPOverlaySubview - -/** Delegate which is notified on Overlay events */ -@property (nonatomic, assign, nullable) id delegate; - -/** The overlay view controller containing this overlay subview (if any) */ -@property (nonatomic, weak) PPOverlayViewController* overlay; - -@optional - -/** - Overlay view appears and the scanning resumes. This happens when the camera view - is opened, or when the app enters foreground with camera view displayed. - */ -- (void)overlayDidResumeScanning; - -/** - Overlay disappears and the scanning pauses. This happens when the camera view - is closed, or when the app enters background with camera view displayed. - */ -- (void)overlayDidStopScanning; - -/** - Overlay started the new recognition cycle. Since recognition is done on video frames, - there might be multiple recognition cycles before the scanning completes - */ -- (void)overlayDidStartRecognition; - -/** - Overlay ended the recognition cycle with a certain result. - The scanning result cannot be considered as valid, sometimes here are received objects which - contain only partial scanning information. - - Use this method only if you need UI update on this event (although this is unnecessary in many cases). - - If you're interested in valid data, use cameraViewController:didOutputResults: method - */ -- (void)overlayDidFinishRecognitionWithResult:(id)result; - -/** - Overlay reports the progress of the current OCR/barcode scanning recognition cycle. - Note: this is not the actual progress from the moment camera appears. - This might not be meaningful for the user in all cases. - */ -- (void)overlayDidPublishProgress:(float)progress; - -/** - Overlay reports the status of the object detection. Scanning status contain information - about whether the scan was successful, whether the user holds the device too far from - the object, whether the angles was too high, or the object isn't seen on the camera in - it's entirety. If the object was found, the corner points of the object are returned. - */ -- (void)overlayDidFindLocation:(NSArray*)points - withStatus:(PPDetectionStatus)status; - -/** - Overlay reports obtained ocr layout - - Besides the ocr layout itself, we get the ID of the layout so we can - distinguish consecutive layouts of the same area on the image - */ -- (void)overlayDidObtainOcrLayout:(PPOcrLayout*)ocrLayout - withIdentifier:(NSString*)identifier; - -/** - Overlay ended the recognition cycle with a certain Scanning result. - The scanning result can be considered as valid, meaning it can be presented to the user for inspection. - Use this method only if you need UI update on this event (although this is unnecessary in many cases). - The actual result will be passed to your PPPhotoPayDelegate object. - */ -- (void)overlayDidOutputResults:(NSArray*)results; - -/** - Overlay wants to remove all animations from a subview - */ -- (void)overlayWillRemoveAllAnimations; - -/** - Method called when a rotation to a given - interface orientation is about to happen - */ -- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation - duration:(NSTimeInterval)duration; - -/** - Method called immediately after the rotation from a given - interface orientation happened - */ -- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation; - -/** - Method called inside an animation block. Any changes you make - to your UIView's inside this method will be animated - */ -- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation - duration:(NSTimeInterval)duration; - -@end - -/** - Base class for all overlay subviews - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPOverlaySubview : UIView - -- (NSArray*)getSortedPoints:(NSArray*)points; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:2ca49d58023d371148130dc71f99a7915e8098043750975e0ab1284e67550092 +size 4627 diff --git a/MicroBlink.framework/Headers/PPOverlayViewController.h b/MicroBlink.framework/Headers/PPOverlayViewController.h index 03838b00..d832a19a 100644 --- a/MicroBlink.framework/Headers/PPOverlayViewController.h +++ b/MicroBlink.framework/Headers/PPOverlayViewController.h @@ -1,317 +1,3 @@ -// -// PPOverlayViewController.h -// PhotoPayFramework -// -// Created by Jurica Cerovec on 5/28/13. -// Copyright (c) 2013 MicroBlink Ltd. All rights reserved. -// - -#import -#import -#import "PPScanningViewController.h" -#import "PPDetectionStatus.h" -#import "PPMicroBlinkDefines.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol PPOverlayContainerViewController; -@class PPOcrLayout; -@class PPMetadata; -@class PPRecognizerResult; - - -/** - Overlay View Controller is an abstract class for all overlay views placed on top PhotoPay's Camera View Controller. - - It's responsibility is to provide meaningful and useful interface for the user to interact with. - - Typical actions which need to be allowed to the user are: - - - intuitive and meaniningful way to guide the user through scanning process. This is usually done by presenting a - "viewfinder" in which the user need to place the scanned object - - a way to cancel the scanining, typically with a "cancel" or "back" button - - a way to power on and off the light (i.e. "torch") button - - PhotoPay always provides it's own default implementation of the Overlay View Controller for every specific use. - Your implementation should closely mimic the default implementation as it's the result of thorough testing with - end users. Also, it closely matches the underlying scanning technology. - - For example, the scanning technology usually gives results very fast after the user places the device's camera in the - expected way above the scanned object. This means a progress bar for the scan is not particularly useful to the user. - The majority of time the user spends on positioning the device's camera correctly. That's just an example which - demonstrates careful decision making behind default camera overlay view. - - PhotoPay demo project in your development package contain `PPCameraOverlayViewController` class, an example of - custom overlay view implementation. - - # Initialization - - To use your custom overlay with PhotoPay's camera view, you must subclass PPOverlayViewController and - specify it when initializing CameraViewController: - - PPCameraOverlayViewController *overlayViewController = - [[PPCameraOverlayViewController alloc] initWithNibName:@"PPCameraOverlayViewController" bundle:nil]; - - // Create camera view controller - UIViewController *cameraViewController = - [coordinator cameraViewControllerWithDelegate:self overlayViewController:overlayViewController]; - - Note: if you create camera view controller without specifying overlay view, the default overlay implementation will be used: - - // Create camera view controller - UIViewController *cameraViewController = - [coordinator cameraViewControllerWithDelegate:self]; - - As with any view controller, you are responsible for specifying UI elements and handling their actions. - Besides that, there are some requirements for interaction with Camera View Controller. - - # Interaction with CameraViewController - - CameraViewController is a Container view controller to the PPOverlayViewController instances. - For more about Container View Controllers, read official Apple [View Controller Programming Guide]. - - Also, each instance of PPOverlayViewController and it's subclasses has access to the Container View Controller. - - // Overlay View's delegate object. Responsible for sending messages - // to PhotoPay's Camera View Controller - @property (nonatomic, assign) id containerViewController; - - # Handling orientation changes - - Camera view controller is always presented in Portrait mode, but nevertheless, your overlay view be presented in the - current device orientation. There are two ways to handle orientation changes. - - The first, built in way is a simple way to achieve autorotation. Your Overlay View Controller only needs to implement - standard UIViewController methods which specify which orientations are supported. For example, to support only landscape - orientations, you need to add the following methods to your Overlay View Controller implementation. - - - (NSUInteger)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskLandscape; - } - - - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { - return UIInterfaceOrientationLandscapeRight; - } - - - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight); - } - - Your Overlay View Controller will automatically rotate to support all orientations returned by `supportedInterfaceOrientations` - method. You are responsible for standard iOS techniques (auto-layout or autoresizing masks) to adjust the UI to new - device orientation. - - You can manually disable autorotation by initializing `PPCoordinator` object with the following setting: - - [coordinatorSettings setValue:@(NO) forKey:kPPOverlayShouldAutorotate]; - - - # Steps for providing custom Camera Overlay View - - 1. Create a subclass of `PPOverlayViewController`. You can use XIB for user interface, or create UI from code. - - 2. See if there are any events received from `CameraViewController` which you need to handle for your UI hierarchy - - 3. Implement your view hierarchy. - - If you have a Cancel button in your view, don't forget to call `overlayViewControllerWillCloseCamera:` - method on overlay's delegate object when cancel is pressed. - - If you have Torch button, dont forget to check if Torch should be displayed by using - `overlayViewControllerShouldDisplayTorch:` method, and to report new torch state with - `overlayViewController:willSetTorch:` method. - - 4. Handle orientation changes, either by implementing standard UIViewController autorotation metods, - or by custom rotation management on rotation events. - - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPOverlayViewController : UIViewController - -/** - Overlay View's delegate object. Responsible for sending messages to PhotoPay's - Camera View Controller - */ -@property (nonatomic, weak) UIViewController *containerViewController; - -/** - Scanning region in which the scaning is performed. - Image is cropped to this region. - - Should be provided in the following coordinate system. - - Upper left point has coordinates (0.0f, 0.0f) and corresponds to upper left corner of the overlay view - - Lower right corner has coordinates (1.0f, 1.0f) and corresponds to lower right corner of the overlay view - - CGRect provided here specifies the origin (upper left point) of the scanning region, and the size of the - region in hereby described coordinating system. - */ -@property (nonatomic, assign) CGRect scanningRegion; - -/** - * Scanning library requested authorization for Camera access from the user, but the user declined it. - * This case means scanning cannot be performed, because accessing camera images is now allowed. - * - * In this callback you have the chance to handle this case and present some kind of a message to the user on top - * of cameraViewController. - */ -- (void)cameraViewControllerUnauthorizedCamera:(UIViewController*)cameraViewController; - -/** - Camera view appears and the scanning resumes. This happens when the camera view - is opened, or when the app enters foreground with camera view displayed. - */ -- (void)cameraViewControllerDidResumeScanning:(UIViewController*)cameraViewController; - -/** - Camera view disappears and the scanning pauses. This happens when the camera view - is closed, or when the app enters background with camera view displayed. - */ -- (void)cameraViewControllerDidStopScanning:(UIViewController*)cameraViewController; - -/** - Camera view reports the progress of the current OCR/barcode scanning recognition cycle. - Note: this is not the actual progress from the moment camera appears. - This might not be meaningful for the user in all cases. - */ -- (void)cameraViewController:(UIViewController*)cameraViewController - didPublishProgress:(float)progress; - -/** - Camera view reports the status of the object detection. Scanning status contain information - about whether the scan was successful, whether the user holds the device too far from - the object, whether the angles was too high, or the object isn't seen on the camera in - it's entirety. If the object was found, the corner points of the object are returned. - - Coordinate system of points returned corresponds to overlay view (meaning, [0,0] is the - origin of the overlay view, [width, height] is the size of overlay view) - */ -- (void)cameraViewController:(UIViewController*)cameraViewController - didFindLocation:(NSArray*)cornerPoints - withStatus:(PPDetectionStatus)status; - -/** - Camera view reports obtained OCR result - - Besides the OCR result itself, we get the ID of the result so we can - distinguish consecutive results of the same area on the image - */ -- (void)cameraViewController:(UIViewController*)cameraViewController - didObtainOcrResult:(PPOcrLayout*)ocrResult - withResultName:(NSString*)resultName; - -/** - Camera view controller started the new recognition cycle. Since recognition is done - on video frames, there might be multiple recognition cycles before the scanning completes - */ -- (void)cameraViewControllerDidStartRecognition:(UIViewController*)cameraViewController; - -/** - Camera view controller ended the recognition cycle with a certain Scanning result. - The scanning result cannot be considered as valid, sometimes here are received objects which - contain only partial scanning information. - - Use this method only if you need UI update on this event (although this is unnecessary in many cases). - - If you're interested in valid data, use cameraViewController:didOutputResult: method - */ -- (void)cameraViewController:(UIViewController*)cameraViewController -didFinishRecognitionWithResult:(id)result; - -/** - Camera view controller ended the recognition cycle with a certain Scanning result. - The scanning result can be considered as valid, meaning it can be presented to the user for inspection. - Use this method only if you need UI update on this event (although this is unnecessary in many cases). - The actual result will be passed to your PPPhotoPayDelegate object. - */ -- (void)cameraViewController:(UIViewController*)cameraViewController - didOutputResults:(NSArray*)results; - -- (void)cameraViewController:(UIViewController*)cameraViewController - didOutputMetadata:(PPMetadata*)metadata; - -/** - Called when a manual focus (user tapped the screen for example) will be performed at specified point. - */ -- (void)cameraViewController:(UIViewController*)cameraViewController - willFocusAtPoint:(CGPoint)point; - -/** - UIViewController's method called when a rotation to a given - interface orientation is about to happen - */ -- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation - duration:(NSTimeInterval)duration; - -/** - UIViewController's method called immediately after the rotation from a given - interface orientation happened - */ -- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation; - -/** - UIViewController's method called inside an animation block. Any changes you make - to your UIView's inside this method will be animated - */ -- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation - duration:(NSTimeInterval)duration; - -@end - - -/** - Overlay View Controller also needs to notify CameraViewController on certain events. - Those are events specified by PPOverlayViewControllerDelegate protocol. - */ -@protocol PPOverlayContainerViewController - -@required - -/** - Notification sent when Overlay View Controller wants to close camera, for example, - by pressing Cancel button. - */ -- (void)overlayViewControllerWillCloseCamera:(PPOverlayViewController*)overlayViewController; - -/** - Overlay View Controller should ask it's delegete if it's necessary to display Torch (Light) button. - Torch button is not necessary if the device doesn't support torch mode (e.g. iPad devices). - */ -- (BOOL)overlayViewControllerShouldDisplayTorch:(PPOverlayViewController*)overlayViewController; - -/** - Overlay View Controller must notify it's delegete to set the torch mode to On or Off - - Returns YES if torch mode was set successfully, otherwise NO. - */ -- (BOOL)overlayViewController:(PPOverlayViewController*)overlayViewController - willSetTorch:(BOOL)isTorchOn; - -/** - * If help mechanism is implemented using PPScanDelegate's scanningViewControllerWillPresentHelp method, - * Overlay view controller should ask it's container whether it's appropriate do display help button; - * - * @return YES if help button should be displayed. - */ -- (BOOL)shouldDisplayHelpButton; - -/** - Overlay View Controller should know if it's presented modally or on navigation view controller. - - Use this method to ask if it's necessary to display Cancel button. (when on navigation view controller, button back is presented by default) - - This method replaced old method overlayViewControllerShouldDisplayCancel. - */ -- (BOOL)isPresentedModally; - -/** - Overlay View Controller can ask it's delegete about the status of Torch - */ -- (BOOL)isTorchOn; - -/** - Overlay View Controller can get Video Capture Preview Layer object from it's delegete. - */ -- (AVCaptureVideoPreviewLayer*)getPreviewLayer; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:9fb8fe433c72c830965e088d3fd9e7fc0d8a1627ed01c1969d6cc4057a75fd97 +size 14065 diff --git a/MicroBlink.framework/Headers/PPPdf417RecognizerResult.h b/MicroBlink.framework/Headers/PPPdf417RecognizerResult.h index a71879d3..5fdb298b 100644 --- a/MicroBlink.framework/Headers/PPPdf417RecognizerResult.h +++ b/MicroBlink.framework/Headers/PPPdf417RecognizerResult.h @@ -1,75 +1,3 @@ -// -// PPPdf417RecognizerResult.h -// Pdf417Framework -// -// Created by Jura on 11/07/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerResult.h" -#import "PPBarcodeDetailedData.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Result of scanning with PDF417 Recognizer - * - * Contains raw Barcode detailed data, and methods for getting string representation of results. - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPPdf417RecognizerResult : PPRecognizerResult - -/** - * Byte array with result of the scan - */ -- (NSData *)data; - -/** - * Retrieves string content of the scanned data using guessed encoding. - * - * If you're 100% sure you know the exact encoding in the barcode, use stringUsingEncoding: method. - * Otherwise stringUsingDefaultEncoding. - * - * This method uses NSString stringEncodingForData:encodingOptions:convertedString:usedLossyConversion: method for - * guessing the encoding. - * - * @return created string, or nil if encoding couldn't be found. - */ -- (NSString *)stringUsingGuessedEncoding; - -/** - * Retrieves string content of the scanned data using given encoding. - * - * @param encoding The encoding for the returned string. - * - * @return String created from data property, using given encoding - */ -- (NSString *)stringUsingEncoding:(NSStringEncoding)encoding; - -/** - * Raw barcode detailed result - */ -- (PPBarcodeDetailedData *)rawData; - -/** - * Flag indicating uncertain scanning data - * E.g obtained from damaged barcode. - */ -- (BOOL)isUncertain; - -/** - * Returns the location of the barcode on the original image. The location is a quadrangle, which is defined - * with upper left, upper right, lower left and lower right corner. - * - * Points are given in image coordinate system - * (0, 0) - top left point on the image, (width, height) - * bottom right point on the image - * - * @return location of the barcode on the original image. - * - * @note - to get the points in NSArray use PPQuadrangle's toPointsArray method. - */ -- (PPQuadrangle *)locationOnImage; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:6558e2d4406de650d919de5bc447c9892fe66d85627bbb99917dcfadecec8752 +size 2028 diff --git a/MicroBlink.framework/Headers/PPPdf417RecognizerSettings.h b/MicroBlink.framework/Headers/PPPdf417RecognizerSettings.h index 95516e46..7e6828f8 100644 --- a/MicroBlink.framework/Headers/PPPdf417RecognizerSettings.h +++ b/MicroBlink.framework/Headers/PPPdf417RecognizerSettings.h @@ -1,49 +1,3 @@ -// -// PPPdf417RecognizerSettings.h -// Pdf417Framework -// -// Created by Jura on 10/07/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings class for configuring PDF417 Barcode recognizer - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPPdf417RecognizerSettings : PPRecognizerSettings - -/** - * Set this to YES to scan even barcode not compliant with standards - * For example, malformed PDF417 barcodes which were incorrectly encoded - * - * Use only if necessary because it slows down the recognition process - * - * Default: NO - */ -@property (nonatomic) BOOL scanUncertain; - -/** - * Set this to YES to scan barcodes which don't have quiet zone (white area) around it - * - * Use only if necessary because it slows down the recognition process - * - * Default: NO - */ -@property (nonatomic) BOOL allowNullQuietZone; - -/** - * Set this to YES to allow scanning barcodes with inverted intensities - * (i.e. white barcodes on black background) - * - * NOTE: this options doubles the frame processing time - * - * Default: NO - */ -@property (nonatomic) BOOL scanInverse; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:5003f845a150b1db0282e1c21da49c0808c319b4ecdead4f9eeaa461d3a40d47 +size 1167 diff --git a/MicroBlink.framework/Headers/PPPointsDetectorResult.h b/MicroBlink.framework/Headers/PPPointsDetectorResult.h new file mode 100644 index 00000000..c54e5e81 --- /dev/null +++ b/MicroBlink.framework/Headers/PPPointsDetectorResult.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fab8a75d742948130ce7b71c088ca7497bfac72a9b49fa1eefefb7056e4a9161 +size 411 diff --git a/MicroBlink.framework/Headers/PPPriceOcrParserFactory.h b/MicroBlink.framework/Headers/PPPriceOcrParserFactory.h new file mode 100644 index 00000000..8c2e41b7 --- /dev/null +++ b/MicroBlink.framework/Headers/PPPriceOcrParserFactory.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dc7180334d12ec595c84c2500b401a60e11e06919f59243a74b83f24af60a77 +size 327 diff --git a/MicroBlink.framework/Headers/PPQuadDetectorResult.h b/MicroBlink.framework/Headers/PPQuadDetectorResult.h index aefd6841..93d643e1 100644 --- a/MicroBlink.framework/Headers/PPQuadDetectorResult.h +++ b/MicroBlink.framework/Headers/PPQuadDetectorResult.h @@ -1,27 +1,3 @@ -// -// PPQuadDetectorResult.h -// BlinkIdFramework -// -// Created by Jura on 10/01/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#import "PPDetectorResult.h" - -#import "PPQuadrangle.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Result of the detection of a Quad detector - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPQuadDetectorResult : PPDetectorResult - -/** - * Exact location of detected object on image - */ -@property (nonatomic) PPQuadrangle* detectionLocation; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:b7e63cc235792ad666eb92750eb8f63f0de418d59d42c10af8c786861ef1976b +size 503 diff --git a/MicroBlink.framework/Headers/PPQuadDetectorSettings.h b/MicroBlink.framework/Headers/PPQuadDetectorSettings.h index b0390c5c..4af6aa5f 100644 --- a/MicroBlink.framework/Headers/PPQuadDetectorSettings.h +++ b/MicroBlink.framework/Headers/PPQuadDetectorSettings.h @@ -1,27 +1,3 @@ -// -// PPQuadDetectorSettings.h -// BlinkIdFramework -// -// Created by Jura on 04/02/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#import "PPDetectorSettings.h" - -#import "PPDocumentDecodingInfo.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings for Quad detectors - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPQuadDetectorSettings : PPDetectorSettings - -/** - * Each quad detector has decoding information which defines the regios of the image which will be decoded - */ -@property (nonatomic) PPDocumentDecodingInfo *info; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:978275afd647b9b4eb8734f43944f90449a0d18b477fd32b6a0872533b62a75d +size 564 diff --git a/MicroBlink.framework/Headers/PPQuadrangle.h b/MicroBlink.framework/Headers/PPQuadrangle.h index 2773ba95..85fc2110 100644 --- a/MicroBlink.framework/Headers/PPQuadrangle.h +++ b/MicroBlink.framework/Headers/PPQuadrangle.h @@ -1,59 +1,3 @@ -// -// PPQuadrangle.h -// BlinkIdFramework -// -// Created by Jura on 03/02/16. -// Copyright © 2016 MicroBlink Ltd. All rights reserved. -// - -#import - -#import "PPMicroBlinkDefines.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Class represents the quadrangle (arbitrary geometric object with 4 different corner points - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPQuadrangle : NSObject - -/** Upper left point */ -@property (nonatomic, assign) CGPoint upperLeft; - -/** Upper right point */ -@property (nonatomic, assign) CGPoint upperRight; - -/** Lower left point */ -@property (nonatomic, assign) CGPoint lowerLeft; - -/** Lower right point */ -@property (nonatomic, assign) CGPoint lowerRight; - -/** - * Designated initializer which initializes all four corners of the quadrangle - * - * @param upperLeft upper left corner of the quadrangle - * @param upperRight upper right corner of the quadrangle - * @param lowerLeft lower left corner of the quadrangle - * @param lowerRight lower right corner of the quadrangle - * - * @return initialized quadrangle with four corners - */ -- (instancetype)initWithUpperLeft:(CGPoint)upperLeft - upperRight:(CGPoint)upperRight - lowerLeft:(CGPoint)lowerLeft - lowerRight:(CGPoint)lowerRight; - -/** - * Returns points of the quadrangle in array in the following order: - * - upperLeft, upperRight, lowerLeft, lowerRight. - * - * The array contains object obtained by, e.g: [NSValue valueWithCGPoint:CGPointMake(0.0, 1.0)] - * - * @return points of the quadrangle in an array - */ -- (NSArray *)toPointsArray; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:f62d810f1aac1302927c8ea3db66a924fd8b0b7555b587ef2d1600c289f12870 +size 1709 diff --git a/MicroBlink.framework/Headers/PPRawOcrParserFactory.h b/MicroBlink.framework/Headers/PPRawOcrParserFactory.h new file mode 100644 index 00000000..57f75872 --- /dev/null +++ b/MicroBlink.framework/Headers/PPRawOcrParserFactory.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31c53b28059516651d84d00c77d2b62d8a38d13d1f6a27af99f50f63ca188b16 +size 671 diff --git a/MicroBlink.framework/Headers/PPRecognizerResult.h b/MicroBlink.framework/Headers/PPRecognizerResult.h index 239abe63..63fb06e9 100644 --- a/MicroBlink.framework/Headers/PPRecognizerResult.h +++ b/MicroBlink.framework/Headers/PPRecognizerResult.h @@ -1,194 +1,3 @@ -// -// PPRecognizerResult.h -// MicroBlinkFramework -// -// Created by Jura on 04/04/14. -// Copyright (c) 2015 MicroBlink ČLtd.. All rights reserved. -// - -#import -#import "PPMicroBlinkDefines.h" -#import "PPQuadrangle.h" - -@class PPResultDataSourceAdapter; -@class PPOcrLayout; -@class PPBarcodeDetailedData; -@class PPDetectorResult; - -NS_ASSUME_NONNULL_BEGIN - -struct RecognitionResultImpl; -typedef struct RecognitionResultImpl RecognitionResultImpl; - -/** - Common superclass for all result classes of MicroBlink scanning library - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPRecognizerResult : NSObject - -@property (nonatomic, assign) RecognitionResultImpl *recognitionResult; - -- (instancetype)initWithRecognitionResult:(struct RecognitionResultImpl *)recognitionResult; - -/** - * All data obtained in the recotnition phase is contained in this Dictionay as Key-Value pairs. - * - * Values can have different types: NSStrings, NSInteger, PPOcrLayouts... - * - * @Warning it's abetter idea to use designated getters getStringElement, getOcrLayoutElement, etc. - * - * @return NSDictionary with all key-value pairs obtained in the recongition phase. - */ -- (NSDictionary *)getAllElements; - -/** - * Method returns a dictionary with all string elements found as a recognizer results. Dictionary contains NSString objects. - * - * Basically, this method performs filtering of all elements returned by getAllElements method. Just string elements are left in the dictionary. - * - * @return eturns a dictionary with all string elements found as a recognizer results - */ -- (NSDictionary *)getAllStringElements; - -/** - * Returns NSData* element from allElements dictionary. - * - * If element exists and it's a NSData, the method will return NSData* object - * If element doesn't exist, the method will return nil. - * - * @param key element key - * - * @return NSData value. - */ -- (NSData *)getDataElement:(NSString *)key; - -/** - * Returns a NSString* element from allElements dictionary using guessed encoding. - * - * If element exists and it's a string, the method will return specified NSString* object - * If element doesn't exist, the method will return nil. - * - * @param key element key - * - * @return NSString value. - */ -- (NSString *)getStringElementUsingGuessedEncoding:(NSString *)key; - -/** - * Returns a NSString* element from allElements dictionary, using a given encoding. - * - * If element exists and it's a string, the method will return specified NSString* object, using specified encoding. - * If element doesn't exist, the method will return nil. - * - * @param key element key - * @param encoding The encoding for the returned string. - * - * @return String created from data property, using given encoding - */ -- (NSString *)getStringElement:(NSString *)key - encoding:(NSStringEncoding)encoding; - -/** - * Returns a NSNumber containing a BOOL element from allElements dictionary. - * - * If elements exists and it's a bool, the method will return specified BOOL value inside NSNumber object. - * If element doesn't exist or not a bool, the method will return nil. - * - * @param key element key - * - * @return NSNumber with bool - */ -- (NSNumber *)getBoolElement:(NSString *)key; - -/** - * Returns a NSNumber containing a int element from allElements dictionary. - * - * If elements exists and it's an int, the method will return specified int value inside NSNumber object. - * If element doesn't exist or not an int, the method will return nil. - * - * @param key element key - * - * @return NSNumber with int - */ -- (NSNumber *)getIntElement:(NSString *)key; - -/** - * Returns a PPOcrLayout* element from allElements dictionary. - * - * If element exists and it's a OcrLayout, the method will return specified PPOcrLayout* object - * If element doesn't exist, the method will return nil. - * - * @param key element key - * - * @return PPOcrLayout value. - */ -- (PPOcrLayout *)getOcrLayoutElement:(NSString *)key; - -/** - * Returns PPBarcodeDetailedData* element from allElements dictionary.. - * - * If element exists and it's a PPBarcodeDetailedData, the method will return it. - * If element doesn't exist, the method will return nil - * - * @param key element key - * - * @return PPBarcodeDetailedData value - */ -- (PPBarcodeDetailedData *)getBarcodeDetailedDataElement:(NSString *)key; - -/** - * Returns a PPQuadrangle* element from allElements dictionary. - * - * If element exists and it's a PPQuadrangle, the method will return specified PPQuadrangle* object - * If element doesn't exist, the method will return nil. - * - * @param key element key - * - * @return PPQuadrangle quadrangle value. - */ -- (PPQuadrangle *)getQuadrangleElement:(NSString *)key; - -/** - * Returns a PPDetectorResult element from allElements dictionary - * - * If element exists and it's a PPDetectorResult, the method will return specified PPDetectorResult object - * If element doesn't exist, the method will return nil. - * - * @param key element key - * - * @return PPDetectorResult detector result value - */ -- (PPDetectorResult *)getDetectorResultElement:(NSString *)key; - -/** - * Returns the xml representation of this result - * - * @return xml representation of this result - */ -- (NSString*)xml; - -/** - * Returns the attributed version of description string - * - * @return the attributed version of description string - */ -- (NSAttributedString*)attributedDescription; - -/** - * Convenience method for simple display of result inside UITableView - * - * @return PPResultDataSourceAdapter object - */ -- (PPResultDataSourceAdapter*)getAdapter; - -/** - * Returns string representation of NSData object for passing over URLs - * - * @param data input NSData object - * - * @return string representation of NSData object - */ -+ (NSString *)urlStringFromData:(NSData *)data; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:86fae7e84d6ba0d2ca227ebd257eff173319411e196acbdfe5fb8d720fac8608 +size 5775 diff --git a/MicroBlink.framework/Headers/PPRecognizerSettings.h b/MicroBlink.framework/Headers/PPRecognizerSettings.h index 69d4405d..464cb96d 100644 --- a/MicroBlink.framework/Headers/PPRecognizerSettings.h +++ b/MicroBlink.framework/Headers/PPRecognizerSettings.h @@ -1,46 +1,3 @@ -// -// PPRecognizerSettings.h -// PhotoPayFramework -// -// Created by Jura on 03/11/14. -// Copyright (c) 2014 MicroBlink Ltd. All rights reserved. -// - -#import -#import "PPMicroBlinkDefines.h" - -NS_ASSUME_NONNULL_BEGIN - -struct RecognizerSettingsImpl; -typedef struct RecognizerSettingsImpl RecognizerSettingsImpl; - -/** - * MicroBlink scanning libraries run several Recognizers on each video frame. - * - * Each recognizer is configured with the appropriate settings object. - * - * This class is common superclass for each of the Recognizer settings, - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPRecognizerSettings : NSObject - -@property (nonatomic, readonly, assign) RecognizerSettingsImpl *settings; - -- (instancetype)initWithSettings:(RecognizerSettingsImpl *)settings; - -/** - * Property which determines if the recognizer is enabled - * - * @param enabled If YES, recognizer is enabled, and it peroforms recognition on each video frame. - */ -- (void)setEnabled:(BOOL)enabled; - -/** - * Determines if recognizer is enabled - * - * @return YES if recognizer is enabled - */ -- (BOOL)isEnabled; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:31d9f4a284090f92f92d3d775b46d924f2abaf68ea6d2c510aead5666d7edd94 +size 1144 diff --git a/MicroBlink.framework/Headers/PPRegexOcrParserFactory.h b/MicroBlink.framework/Headers/PPRegexOcrParserFactory.h new file mode 100644 index 00000000..17ad4473 --- /dev/null +++ b/MicroBlink.framework/Headers/PPRegexOcrParserFactory.h @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8b56d03040934f0fc369f9727ce0715f5c28136575be82dc7a337c2264affce +size 1219 diff --git a/MicroBlink.framework/Headers/PPScanDelegate.h b/MicroBlink.framework/Headers/PPScanDelegate.h index 8d0f1e48..7161438d 100644 --- a/MicroBlink.framework/Headers/PPScanDelegate.h +++ b/MicroBlink.framework/Headers/PPScanDelegate.h @@ -1,126 +1,3 @@ -// -// PPScanDelegate.h -// PhotoPayFramework -// -// Created by Jura on 09/03/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import - -#import "PPOverlayViewController.h" -#import "PPScanningViewController.h" -#import "PPMetadata.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Protocol for obtaining scanning results - */ -@protocol PPScanDelegate -@required - -/** - * Scanning library requested authorization for Camera access from the user, but the user declined it. - * This case means scanning cannot be performed, because accessing camera images is now allowed. - * - * In this callback you have the chance to handle this case and present some kind of a message to the user on top - * of scanningViewController. - * - * @param scanningViewController Scanning view controller which was responsible for scanning - */ -- (void)scanningViewControllerUnauthorizedCamera:(UIViewController*)scanningViewController; - -/** - * Scanning library found an error. The error object is returned and contains - * description of the error, in a specified language. Do your error handling here. - * - * Currently, only one situation can result with this callback being called: - * - Using camera session resulted with AVCaptureSessionRuntimeErrorNotification notification - * - * The best way to handle this is to Log the error (GA, Crashlytics, Flurry) and let the user continue - * using the app. - * - * @param scanningViewController Scanning view controller which was responsible for scanning - * @param error Error object describing the error - */ -- (void)scanningViewController:(UIViewController*)scanningViewController - didFindError:(NSError*)error; - -/** - * Scanning library was closed, usually by the user pressing close button and cancelling the scan - * - * @param scanningViewController Scanning view controller responsible for scanning - */ -- (void)scanningViewControllerDidClose:(UIViewController*)scanningViewController; - -/** - * Scanning library did output scanning results (array of PPRecognizerResult objects). Do your next steps here. - * - * Depending on how you want to treat the result, you might want to - * dismiss the scanningViewController here. - * - * This method is the default way for getting access to results of scanning. - * - * Note: - * - there may be 0, 1, or more than one scanning results. - * - each scanning result belongs to a common PPRecognizerResult type - * - handle different types differently - * - * @param scanningViewController scanningViewController Scanning view controller responsible for scanning - * @param results Array of results returned by the scanner - * - * @see PPRecognizerResult - */ -- (void)scanningViewController:(nullable UIViewController*)scanningViewController - didOutputResults:(NSArray*)results; - -@optional - -/** - * Scanning library found an invalid license key. - * - * This can happen in two situations: - * 1) Completely invalid license key was used (either it's not set, or it's garbage, or it expired) - * 2) License key is in fact valid, but the features you're using aren't enabled by the license key - * - * If you don't implement this method, the SDK will present an UIAlertView with error and call your - * - * This is intended for you to easily spot the issue as soon as possible. - * - * If you implement this method, you have a chance to handle the situation. However, scanning won't work - * without a valid license key! - * - * @param scanningViewController Scanning view controller which was responsible for scanning - * @param error Error object describing the error - */ -- (void)scanningViewController:(UIViewController*)scanningViewController - invalidLicenseKeyWithError:(NSError*)error; - -/** - * Called when Scanning library will display help. This can happen when the user presses - * help button on scanning UI, or on first run of the application - * - * @param scanningViewController scanningViewController Scanning view controller responsible for scanning - */ -- (void)scanningViewControllerWillPresentHelp:(UIViewController*)scanningViewController; - -/** - * Called when Scanning library requires the display of more info view - * - * @param scanningViewController scanningViewController Scanning view controller responsible for scanning - */ -- (void)scanningViewControllerDidRequestMoreInfo:(UIViewController*)scanningViewController; - -/** - * Called when coordinator obtaines metadata information - * - * @param scanningViewController scanningViewController Scanning view controller responsible for scanning - * @param metadata obtained metadata - */ -- (void)scanningViewController:(nullable UIViewController *)scanningViewController - didOutputMetadata:(PPMetadata *)metadata; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:f0411e8b77da281c60156c8e6708191d6106d3c5ee4cade3c53161896fb6369a +size 5009 diff --git a/MicroBlink.framework/Headers/PPScanSettings.h b/MicroBlink.framework/Headers/PPScanSettings.h index ec3b83f3..0c715861 100644 --- a/MicroBlink.framework/Headers/PPScanSettings.h +++ b/MicroBlink.framework/Headers/PPScanSettings.h @@ -1,117 +1,3 @@ -// -// PPScanSettings.h -// PhotoPayFramework -// -// Created by Jura on 25/02/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import - -#import "PPRecognizerSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Denotes the mode in which Recognizers performs recognition - */ -typedef NS_ENUM(NSUInteger, PPRecognitionMode) { - - /** Classic, production mode. Results are returned after first valid scanning */ - PPRecognitionModeDefault, - - /** Recognition Test. Results are never returned, recognition is performed repeatedly */ - PPRecognitionModeTest, - - /** Recognition Test. Results are never returned, only detection is performed repeatedly */ - PPRecognitionModeDetectionTest -}; - -/** - * Denotes the mode in which FrameQuality estimation works - */ -typedef NS_ENUM(NSUInteger, PPFrameQualityEstimationMode) { - - /** Default. Frame quality estimation is ON if enabled recognizers require it by default.*/ - PPFrameQualityEstimationModeDefault, - - /** Frame quality estimation is always on */ - PPFrameQualityEstimationModeOn, - - /** Frame quality estimation is always off */ - PPFrameQualityEstimationModeOff -}; - -/** - * Settings class containing settings related to scanner behaviour - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPScanSettings : NSObject - -/** - * Contains PPRecognizerSettings objects - settings for each individual recognizer. - * On each video frame taken by device scamera, processing is performed by a series of recognizers. - * Ordering of these recognizers is specified by this array. - * - * @see PPRecognizerSettings. - */ -@property (nonatomic, strong, readonly) NSArray *recognizerSettingsList; - -/** - * If NO, recognizer chain will stop when finds first valid scan results and will return just it. - * If YES, recognizer chain can sometimes return more than one scanning result. - * - * Default: YES - */ -@property (nonatomic, assign) BOOL allowMultipleResults; - -/** - * Timeout interval in which the partial scanning results in PhotoPay will be returned to the user. - * If <= 0.0, no timeout event will be reported. - * - * Default: 7.0 seconds - */ -@property (nonatomic, assign) NSTimeInterval partialRecognitionTimeout; - -/** - * Recognition mode. - * - * Default: PPRecognitionModeDefault - */ -@property (nonatomic, assign) PPRecognitionMode recognitionMode; - -/** - * Frame quality estimation mode. If frame quality estimation is on, some video frames will be skipped, if - * frame quality estimator determines the quality is too low (i.e. frame is too blurry, too dark, or something similar). - * - * The downside is that frame quality estimation spends some valuable CPU time. - * - * Default PPFrameQualityEstimationModeDefault - */ -@property (nonatomic, assign) PPFrameQualityEstimationMode frameQualityEstimationMode; - -/** - * Designated initializer. Initializes the object with default settings (see above for defaults) - * - * @return object initialized with default values. - */ -- (instancetype)init; - -/** - * Adds recognizer setting to the list of all recognizer. - * Adding recognizer settings results with this recognizer being applied on each video frame in the processing stage. - * - * @param setting Concerete recognizer setting. - */ -- (void)addRecognizerSettings:(PPRecognizerSettings*)setting; - -/** - * Removes recognizer setting to the list of all recognizer. - * Removing recognizer settings means this recognizer will ne longer be applied in the processing stage - * - * @param setting Concerete recognizer setting. - */ -- (void)removeRecognizerSettings:(PPRecognizerSettings*)setting; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:1d728cd9aebe9ab7108559f7dfac5cc70b9e716517bff8b9051c2884575d6b41 +size 3623 diff --git a/MicroBlink.framework/Headers/PPScanningViewController.h b/MicroBlink.framework/Headers/PPScanningViewController.h index b1cf0358..2ab275e0 100644 --- a/MicroBlink.framework/Headers/PPScanningViewController.h +++ b/MicroBlink.framework/Headers/PPScanningViewController.h @@ -1,95 +1,3 @@ -// -// PPScanningViewController.h -// BarcodeFramework -// -// Created by Jurica Cerovec on 14/11/13. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -/** - * Protocol for View controllers which present camera and provide scanning features - */ -@protocol PPScanningViewController - -/** - * Scanning region - * Defines a portion of the screen in which the scanning will be performed. - * Given as a CGRect with unit coordinating system: - * - * @example CGRectMake(0.2f, 0.5f, 0.4f, 0.3f) defines a portion of the screen which starts at - * 20% from the left border - * 50% from the top - * covers 40% of screen width - * and 30% of screen heeight - */ -@property (nonatomic, assign) CGRect scanningRegion; - -/** - * ScanningViewController's shouldAutorotate will return this value. - * - * Default: NO. - * - * Set it to YES if you want scanning view controller to autorotate. - */ -@property (nonatomic, assign) BOOL autorotate; - -/** - * ScanningViewController's supportedInterfaceOrientations will return this value. - * - * Default: UIInterfaceOrientationMaskPortrait. - */ -@property (nonatomic, assign) NSUInteger supportedOrientations; - -/** - * Pause scanning without dismissing the camera view. - * - * If there is camera frame being processed at a time, the processing will finish, but the results of processing - * will not be returned. - * - * @warning must be called from Main thread to ensure thread synchronization - */ -- (void)pauseScanning; - -/** - * Retrieve the current state of scanning. - * - * @return YES if scanning is paused. NO if it's in progress - * - * @warning must be called from Main thread to ensure thread synchronization - */ -- (BOOL)isScanningPaused; - -/** - * Resumes scanning. Optionally, internal state of recognizers can be reset in the process. - * - * If you continue scanning the same object, for example, the same slip, or the same MRTD document, to get result - * with higher confidence, then pass NO to reset State. - * - * If you move to scan another object, for example, another barcode, or another payment slip, then pass YES to reset State. - * - * Internal state is used to use the fact that the same object exists on multiple consecutive frames, and using internal - * state provides better scanning results. - * - * @param resetState YES if state should be reset. - * - * @warning must be called from Main thread to ensure thread synchronization - */ -- (void)resumeScanningAndResetState:(BOOL)resetState; - -/** - * Resumes camera session. This method is automatically called in viewWillAppear when ScanningViewController enters screen. - */ -- (void)resumeCamera; - -/** - * Pauses camera session. This method is automatically called in viewDidDissapear when ScanningViewController exits screen. - */ -- (void)pauseCamera; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:0ae7719cfdec1c339fbd8aea887b27ccdbcaea1af6ce8e7f2d3f1a37539e3f69 +size 2837 diff --git a/MicroBlink.framework/Headers/PPSettings.h b/MicroBlink.framework/Headers/PPSettings.h index 153e7f06..c6f5d48c 100644 --- a/MicroBlink.framework/Headers/PPSettings.h +++ b/MicroBlink.framework/Headers/PPSettings.h @@ -1,68 +1,3 @@ -// -// SettingsKeys.h -// PhotoPayFramework -// -// Created by Jurica Cerovec on 6/5/12. -// Copyright (c) 2014 MicroBlink Ltd. All rights reserved. -// - -#ifndef PhotoPayFramework_SettingsKeys_h -#define PhotoPayFramework_SettingsKeys_h - -#import "PPCameraSettings.h" -#import "PPLicenseSettings.h" -#import "PPUiSettings.h" -#import "PPScanSettings.h" -#import "PPMetadataSettings.h" - -#import "PPMicroBlinkDefines.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings class with all possible customizable settings in the scanning process - * - * Contains: - * - Camera Settings: for customizing camera controls - * - License Settings: - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPSettings : NSObject - -/** - * Settings related to Camera control - */ -@property (nonatomic, strong) PPCameraSettings* cameraSettings; - -/** - * Settings for license key (without it, scanning might not work) - */ -@property (nonatomic, strong) PPLicenseSettings* licenseSettings; - -/** - * Settings for camera UIg - */ -@property (nonatomic, strong) PPUiSettings* uiSettings; - -/** - * Settings to control scanning. - * - * Here you need to define what type of scanning will be performed on video frames. - * You can do that by adding different PPRecognizerSettings object. - * - * Each PPRecognizerSettings object initializes one Recognizer object which is then responsible for performing - * recognition on each video frame - * - * @see PPRecognizerSettings - */ -@property (nonatomic, strong) PPScanSettings* scanSettings; - -/** - * Settings for obtaining metadata in the scanning process. - */ -@property (nonatomic, strong) PPMetadataSettings* metadataSettings; - -@end - -NS_ASSUME_NONNULL_END - -#endif +version https://git-lfs.github.com/spec/v1 +oid sha256:47c18c7d925ef3edc8731f1550977367e16f9ba66c72c6dba72708e2a86326ec +size 1650 diff --git a/MicroBlink.framework/Headers/PPTextMetadata.h b/MicroBlink.framework/Headers/PPTextMetadata.h index caede73b..368ad2c7 100644 --- a/MicroBlink.framework/Headers/PPTextMetadata.h +++ b/MicroBlink.framework/Headers/PPTextMetadata.h @@ -1,68 +1,3 @@ -// -// PPTextMetadata.h -// PhotoPayFramework -// -// Created by Jura on 02/03/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPMetadata.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Type of the text metadata - */ -typedef NS_ENUM(NSUInteger, PPTextMetadataType){ - /** Regular text metadata */ - PPTextMetadataTypeTxt, - /** XML formatter metadata */ - PPTextMetadataTypeXml, - /** JSON formatted metadata */ - PPTextMetadataTypeJson, -}; - -/** - * Textual type of Metadata returned by MicroBlink scanner. - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPTextMetadata : PPMetadata - -/** - * Actual text in the metadata. - */ -@property (nonatomic, strong) NSString* text; - -/** - * Type of the text metadata - */ -@property (nonatomic, assign) PPTextMetadataType type; - -/** - * Retuns an initialized PPTextMetadata object with given name and text value - * - * Default type is PPTextMetadataTypeTxt - * - * @param name name (id) of the metadata - * @param text text value - * - * @return Initialized PPTextMetadata object with given name and text value, with default type PPTextMetadataTypeTxt - */ -- (instancetype)initWithName:(NSString *)name - text:(NSString*)text; - -/** - * Retuns an initialized PPTextMetadata object with given name, text value and type - * - * @param name name (id) of the metadata - * @param text text value - * @param type type of the metadata - * - * @return Initialized PPTextMetadata object with given name, text value and type - */ -- (instancetype)initWithName:(NSString *)name - text:(NSString*)text - type:(PPTextMetadataType)type; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:eb5f7272439a86e3214f2356f631099a3ca787e44f3dbb1c3523ccb447a79e71 +size 1662 diff --git a/MicroBlink.framework/Headers/PPUiSettings.h b/MicroBlink.framework/Headers/PPUiSettings.h index 414d66fa..8eb12e89 100644 --- a/MicroBlink.framework/Headers/PPUiSettings.h +++ b/MicroBlink.framework/Headers/PPUiSettings.h @@ -1,118 +1,3 @@ -// -// PPUiSettings.h -// PhotoPayFramework -// -// Created by Jura on 24/02/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import -#import - -#import "PPMicroBlinkDefines.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Different options for displaying help - */ -typedef NS_ENUM(NSUInteger, PPHelpDisplayMode) { - - /** Defines that help should never be displayed */ - PPHelpDisplayModeNever, - - /** Defines help should only be displayed on first PhotoPay run */ - PPHelpDisplayModeFirstRun, - - /** Defines help should be displayed on every PhotoPay run */ - PPHelpDisplayModeAlways -}; - -/** - * Settings class containing UI information - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPUiSettings : NSObject - -/** - * If YES, default camera overlay will display Cancel button. - * Usually, if camera is displayed inside Navigation View Controler, this is reasonable to set to NO. - * - * Default: YES. - */ -@property (nonatomic, assign) BOOL showCloseButton; - -/** - * If YES, Overlay View Controller will be autorotated independently of ScanningViewController. - * - * Default: NO. - */ -@property (nonatomic, assign) BOOL autorotateOverlay; - -/** - * If YES, OCR results will be passed to the UI callbacks. For you, this means OCR effects will be shown on screen. - * - * Default: YES. Use NO if you care about scanning speed. - */ -@property (nonatomic, assign) BOOL showOcrResults; - -/** - * If default overlay contains textual information, text will be localized to this language - * - * Default: nil, because it uses default language of the device - */ -@property (nonatomic, strong, nullable) NSString* language; - -/** - * Full path to the sound file which is played when the valid result is scanned. - * - * Default: `[[NSBundle mainBundle] pathForResource:@"PPbeep" ofType:@"wav"];` - */ -@property (nonatomic, strong, nullable) NSString* soundFilePath; - -/** - * Label which is displayed on screen when camera is paused, but still exists on the screen. - * - * This happens in split view and slide over modes in iOS 9. - * - * The view is centered on screen and displayed with a 0.4s fade in animation. It's dismissed with 0.4s - * fade out animation. - * - * Default: - * UILabel *cameraPausedLabel = [[UILabel alloc] init]; - * cameraPausedLabel.text = @"Camera paused"; - * cameraPausedLabel.font = [UIFont systemFontOfSize:24.f]; - * cameraPausedLabel.textColor = [UIColor whiteColor]; - * cameraPausedLabel.layer.shadowRadius = 5.0f; - * cameraPausedLabel.layer.shadowOffset = CGSizeMake(1.0, 1.0); - * cameraPausedLabel.layer.shadowOpacity = 1.0f; - * cameraPausedLabel.layer.shadowColor = [UIColor blackColor].CGColor; - * [cameraPausedLabel sizeToFit]; - */ -@property (nonatomic, strong, nullable) UIView *cameraPausedView; - - -/** - * If YES, debug information will be displayed on the information. - * Debug information displays payslip detection duration and recognition duration. - * - * Default: NO - */ -@property (nonatomic, assign) BOOL displayDebugInfo; - -/** - * If Scanning UI has Help UI available, this enum defines the mode in which the help is displayed. - * - * Default: PPHelpDisplayModeFirstRun - */ -@property (nonatomic, assign) PPHelpDisplayMode helpDisplayMode; - -/** - * Designated initializer. Initializes the object with default settings (see above for defaults) - * - * @return object initialized with default values. - */ -- (instancetype)init; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:2b22b48ed70b656ae2b4bfe84b2a25b21c012b3f3ae25115777673c83de8b7b2 +size 3452 diff --git a/MicroBlink.framework/Headers/PPUkdlRecognizerResult.h b/MicroBlink.framework/Headers/PPUkdlRecognizerResult.h deleted file mode 100644 index d4ca17a6..00000000 --- a/MicroBlink.framework/Headers/PPUkdlRecognizerResult.h +++ /dev/null @@ -1,69 +0,0 @@ -// -// PPUkdlRecognizerResult.h -// BlinkIDFramework -// -// Created by Jura on 13/04/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerResult.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Class representing result of scanning of UK Driver's licenses - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPUkdlRecognizerResult : PPRecognizerResult - -/** - * First name of the owner of the DL card - * - * @return owner first name - */ -- (NSString *)ownerFirstName; - -/** - * Last name of the owner of the DL card - * - * @return owner last name - */ -- (NSString *)ownerLastName; - -/** - * Addres the owner of the DL card - * - * @return address - */ -- (NSString *)ownerAddress; - -/** - * Birth data of the owner - * - * @return Birth data - */ -- (NSString *)ownerBirthData; - -/** - * Issue date of the DL card - * - * @return document issue date - */ -- (NSString *)documentIssueDate; - -/** - * Expiry date of the DL card - * - * @return document exipri date - */ -- (NSString *)documentExpiryDate; - -/** - * Driver number - * - * @return driver number - */ -- (NSString *)driverNumber; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MicroBlink.framework/Headers/PPUkdlRecognizerSettings.h b/MicroBlink.framework/Headers/PPUkdlRecognizerSettings.h deleted file mode 100644 index 628e072f..00000000 --- a/MicroBlink.framework/Headers/PPUkdlRecognizerSettings.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// PPUkdlRecognizerSettings.h -// BlinkIDFramework -// -// Created by Jura on 13/04/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings class for configuring UKDL Recognizer - * - * UKDL Recognizer recognizer is used for scanning and parsing the front side of UK Driving licenses - * - * @see https://en.wikipedia.org/wiki/Driving_licence_in_the_United_Kingdom - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPUkdlRecognizerSettings : PPRecognizerSettings - -/** - * If YES, document issue date will be extracted - * Set this to NO if youre not interested in this data to speed up the scanning process! - * - * Default: YES. - */ -@property (nonatomic, assign) BOOL extractIssueDate; - -/** - * If YES, document expiry date will be extracted - * Set this to NO if youre not interested in this data to speed up the scanning process! - * - * Default: YES. - */ -@property (nonatomic, assign) BOOL extractExpiryDate; - -/** - * If YES, owner's address will be extracted - * Set this to NO if youre not interested in this data to speed up the scanning process! - * - * Default: YES. - */ -@property (nonatomic, assign) BOOL extractAddress; - -/** - * If YES, full image of the document will be dewarped and returned via the API. - * - * Default: NO. - */ -@property (nonatomic, assign) BOOL showFullDocument; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MicroBlink.framework/Headers/PPUsdlRecognizerResult.h b/MicroBlink.framework/Headers/PPUsdlRecognizerResult.h index 36f259ca..f63bb6ee 100644 --- a/MicroBlink.framework/Headers/PPUsdlRecognizerResult.h +++ b/MicroBlink.framework/Headers/PPUsdlRecognizerResult.h @@ -1,955 +1,3 @@ -// -// PPUsdlRecognizerResult.h -// BlinkIDFramework -// -// Created by Jura on 02/04/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerResult.h" - -#import "PPMicroBlinkDefines.h" - -#pragma mark - Keys for obtaining data on driver's licenses - -NS_ASSUME_NONNULL_BEGIN - -//==============================================================/ -//============== 1. DETERMINING BARCODE VERSION ================/ -//==============================================================/ - -/** - Mandatory on all driver's licenses. All barcodes which are using 3-track magnetic - stripe encoding used in the interest of smoothing a transition from legacy documents - shall be designated as "Magnetic". All barcodes which are using compact encoding - compliant with ISO/IEC 18013-2 shall be designated as "Compact". All barcodes (majority) - compliant with Mandatory PDF417 Bar Code of the American Association of Motor Vehicle - Administrators (AAMVA) Card Design Standard from AAMVA DL/ID-2000 standard to DL/ID-2013 - shall be designated as "AAMVA". - */ -PP_EXTERN NSString* const kPPDocumentType; - -/** - Mandatory on all driver's licenses. - - AAMVA Version Number: This is a decimal value between 0 and 99 that - specifies the version level of the PDF417 bar code format. Version "0" and "00" - is reserved for bar codes printed to the specification of the American Association - of Motor Vehicle Administrators (AAMVA) prior to the adoption of the AAMVA DL/ID-2000 - standard. All bar codes compliant with the AAMVA DL/ID-2000 standard are designated - Version "01." All barcodes compliant with AAMVA Card Design Specification version - 1.0, dated 09-2003 shall be designated Version "02." All barcodes compliant with - AAMVA Card Design Specification version 2.0, dated 03-2005 shall be designated - Version "03." All barcodes compliant with AAMVA Card Design Standard version 1.0, - dated 07-2009 shall be designated Version "04." All barcodes compliant with AAMVA - Card Design Standard version 1.0, dated 07-2010 shall be designated Version "05." - All barcodes compliant with AAMVA Card Design Standard version 1.0, dated 07- 2011 - shall be designated Version "06". All barcodes compliant with AAMVA Card Design - Standard version 1.0, dated 06-2012 shall be designated Version "07". All barcodes - compliant with this current AAMVA standard shall be designated "08". Should a need - arise requiring major revision to the format, this field provides the means to - accommodate additional revision. - - If document type is not "AAMVA", this field defines version number of the - given document type's standard. - */ -PP_EXTERN NSString* const kPPStandardVersionNumber; - -//==============================================================/ -//========== 2. PERSONAL DATA KEYS ===========/ -//==============================================================/ - -/** - Mandatory on all AAMVA, Magnetic and Compact barcodes. - - Family name of the cardholder. (Family name is sometimes also called "last name" or "surname.") - Collect full name for record, print as many characters as possible on portrait side of DL/ID. - */ -// internal note: Form AAMVA 01 filled by DataExpander from kFullName -PP_EXTERN NSString* const kPPCustomerFamilyName; - -/** - Mandatory on all AAMVA, Magnetic and Compact barcodes. - - First name of the cardholder. - */ -// internal note: Form AAMVA 01 filled by DataExpander from kFullName -PP_EXTERN NSString* const kPPCustomerFirstName; - -/** - Mandatory on all AAMVA, Magnetic and Compact barcodes. - - Full name of the individual holding the Driver License or ID. - - The Name field contains up to four portions, separated with the "," delimiter: - Last Name (required) - , (required) - First Name (required) - , (required if other name portions follow, otherwise optional) - Middle Name(s) (optional) - , (required if other name portions follow, otherwise optional) - Suffix (optional) - , (optional) - - If indvidual has more than one middle name they are separated with space. - */ -// internal node: Filled by DataExpander -PP_EXTERN NSString* const kPPCustomerFullName; - -/** - Mandatory on all AAMVA, Magentic and Compact barcodes. - - Date on which the cardholder was born. (MMDDCCYY format) - */ -PP_EXTERN NSString* const kPPDateOfBirth; - -/** - Mandatory on all AAMVA, Magentic barcodes. - Optional on Compact barcodes. - - Gender of the cardholder. 1 = male, 2 = female. - */ -PP_EXTERN NSString* const kPPSex; - -/** - Mandatory on AAMVA 02, 03, 04, 05, 06, 07, 08 barcodes. - Optional on AAMVA 01, Magnetic and Compact barcodes. - - Color of cardholder's eyes. (ANSI D-20 codes) - - Code Description - BLK Black - BLU Blue - BRO Brown - GRY Gray - GRN Green - HAZ Hazel - MAR Maroon - PNK Pink - DIC Dichromatic - UNK Unknown - */ -PP_EXTERN NSString* const kPPEyeColor; - -/** - Mandatory on all AAMVA and Magnetic barcodes. - - On compact barcodes, use kFullAddress. - - Street portion of the cardholder address. - The place where the registered driver of a vehicle (individual or corporation) - may be contacted such as a house number, street address etc. - */ -PP_EXTERN NSString* const kPPAddressStreet; - -/** - Mandatory on all AAMVA and Magnetic barcodes. - - On compact barcodes, use kFullAddress. - - City portion of the cardholder address. - */ -PP_EXTERN NSString* const kPPAddressCity; - -/** - Mandatory on all AAMVA and Magnetic barcodes. - - On compact barcodes, use kFullAddress. - - State portion of the cardholder address. - */ -PP_EXTERN NSString* const kPPAddressJurisdictionCode; - -/** - Mandatory on all AAMVA and Magnetic barcodes. - - On compact barcodes, use kFullAddress. - - Postal code portion of the cardholder address in the U.S. and Canada. If the - trailing portion of the postal code in the U.S. is not known, zeros can be used - to fill the trailing set of numbers up to nine (9) digits. - */ -PP_EXTERN NSString* const kPPAddressPostalCode; - -/** - Mandatory on all AAMVA and Magnetic barcodes. - Optional on Compact barcodes. - - Full address of the individual holding the Driver License or ID. - - The full address field contains up to four portions, separated with the "," delimiter: - Street Address (required) - , (required if other address portions follow, otherwise optional) - City (optional) - , (required if other address portions follow, otherwise optional) - Jurisdiction Code (optional) - , (required if other address portions follow, otherwise optional) - ZIP - Postal Code (optional) - - */ -// internal note: Filled by DataExpander -PP_EXTERN NSString* const kPPFullAddress; - -/** - Mandatory on AAMVA 02, 03, 04, 05, 06, 07, 08 and Compact barcodes. - Optional on AAMVA 01 and Magnetic barcodes. - - Height of cardholder, either in Inches or in Centimeters. - - Inches (in): number of inches followed by " in" - example: 6'1'' = "73 in" - - Centimeters (cm): number of centimeters followed by " cm" - example: 181 centimeters = "181 cm" - */ -// internal note: Filled by DataExpander -PP_EXTERN NSString* const kPPHeight; - -/** - Mandatory on AAMVA 02, 03, 04, 05, 06, 07, 08 and Compact barcodes. - Optional on AAMVA 01 and Magnetic barcodes. - - Height of cardholder in Inches. - Example: 5'9'' = "69". - */ -// internal note: Filled by DataExpander -PP_EXTERN NSString* const kPPHeightIn; - -/** - Mandatory on AAMVA 02, 03, 04, 05, 06, 07, 08 Compact barcodes. - Optional on AAMVA 01 and Magnetic barcodes. - - Height of cardholder in Centimeters. - Example: 180 Centimeters = "180". - */ -// internal note: Filled by DataExpander -PP_EXTERN NSString* const kPPHeightCm; - -/** - Mandatory on AAMVA 04, 05, 06, 07, 08. - Optional on AAMVA 01, 02, 03, Magnetic and Compcat barcodes. - - Middle name(s) of the cardholder. In the case of multiple middle names they - shall be separated by space " ". - */ -// internal node: AAMVA 02 and 03 filled from kFirstName wich can contain Middle name -PP_EXTERN NSString* const kPPCustomerMiddleName; - -/** - Optional on all AAMVA, Magnetic and Compact barcodes. - - Bald, black, blonde, brown, gray, red/auburn, sandy, white, unknown. If the issuing - jurisdiction wishes to abbreviate colors, the three-character codes provided in ANSI D20 must be - used. - - Code Description - BAL Bald - BLK Black - BLN Blond - BRO Brown - GRY Grey - RED Red/Auburn - SDY Sandy - WHI White - UNK Unknown - */ -PP_EXTERN NSString* const kPPHairColor; - -/** - Mandatory on AAMVA 02 barcodes. - Optional on AAMVA 01, 03, 04, 05, 06, 07, 08, Magnetic and Compact barcodes. - - Name Suffix (If jurisdiction participates in systems requiring name suffix (PDPS, CDLIS, etc.), - the suffix must be collected and displayed on the DL/ID and in the MRT). - - JR (Junior) - - SR (Senior) - - 1ST or I (First) - - 2ND or II (Second) - - 3RD or III (Third) - - 4TH or IV (Fourth) - - 5TH or V (Fifth) - - 6TH or VI (Sixth) - - 7TH or VII (Seventh) - - 8TH or VIII (Eighth) - - 9TH or IX (Ninth) - */ -PP_EXTERN NSString* const kPPNameSuffix; - -/** - Optional on all AAMVA and Compact barcodes. - - Other name by which cardholder is known. ALTERNATIVE NAME(S) of the individual - holding the Driver License or ID. - - The Name field contains up to four portions, separated with the "," delimiter: - AKA Last Name (required) - , (required) - AKA First Name (required) - , (required if other name portions follow, otherwise optional) - AKA Middle Name(s) (optional) - , (required if other name portions follow, otherwise optional) - AKA Suffix (optional) - , (optional) - - If indvidual has more than one AKA middle name they are separated with space. - */ -// internal node: Filled by DataExpander -PP_EXTERN NSString* const kPPAKAFullName; - -/** - Optional on all AAMVA and Compact barcodes. - - Other family name by which cardholder is known. - */ -// internal node: Filled by DataExpander -PP_EXTERN NSString* const kPPAKAFamilyName; - -/** - Optional on all AAMVA and Compact barcodes. - - Other given name by which cardholder is known - */ -// internal node: Filled by DataExpander -PP_EXTERN NSString* const kPPAKAGivenName; - -/** - Optional on all AAMVA and Compact barcodes. - - Other suffix by which cardholder is known. - - The Suffix Code Portion, if submitted, can contain only the Suffix Codes shown in the following table (e.g., Andrew Johnson, III = JOHNSON@ANDREW@@3RD): - - Suffix Meaning or Synonym - JR Junior - SR Senior or Esquire 1ST First - 2ND Second - 3RD Third - 4TH Fourth - 5TH Fifth - 6TH Sixth - 7TH Seventh - 8TH Eighth - 9TH Ninth - */ -// internal node: Filled by DataExpander -PP_EXTERN NSString* const kPPAKASuffixName; - -/** - Mandatory on AAMVA 02 barcodes. - Optional on AAMVA 01, 03, 04, 05, 06, 07, 08, Magnetic and Compact barcodes. - - Indicates the approximate weight range of the cardholder: - 0 = up to 31 kg (up to 70 lbs) - 1 = 32 – 45 kg (71 – 100 lbs) - 2 = 46 - 59 kg (101 – 130 lbs) - 3 = 60 - 70 kg (131 – 160 lbs) - 4 = 71 - 86 kg (161 – 190 lbs) - 5 = 87 - 100 kg (191 – 220 lbs) - 6 = 101 - 113 kg (221 – 250 lbs) - 7 = 114 - 127 kg (251 – 280 lbs) - 8 = 128 – 145 kg (281 – 320 lbs) - 9 = 146+ kg (321+ lbs) - */ -// internal note: Filled by DataExpander -PP_EXTERN NSString* const kPPWeightRange; - -/** - Mandatory on AAMVA 02 barcodes. - Optional on AAMVA 01, 03, 04, 05, 06, 07, 08, Magnetic and Compact barcodes. - - Cardholder weight in pounds Example: 185 lb = "185" - */ -// internal note: Filled by DataExpander -PP_EXTERN NSString* const kPPWeightPounds; - -/** - Mandatory on AAMVA 02 barcodes. - Optional on AAMVA 01, 03, 04, 05, 06, 07, 08, Magnetic and Compact barcodes. - - Cardholder weight in kilograms Example: 84 kg = "084" - */ -// internal note: Filled by DataExpander -PP_EXTERN NSString* const kPPWeightKilograms; - -/** - Mandatory on all AAMVA and Compact barcodes - - The number assigned or calculated by the issuing authority. - */ -PP_EXTERN NSString* const kPPCustomerIdNumber; - -/** - Mandatory on AAMVA 04, 05, 06, 07, 08 barcodes. - Optional on Compact barcodes. - - A code that indicates whether a field has been truncated (T), has not been - truncated (N), or – unknown whether truncated (U). - */ -PP_EXTERN NSString* const kPPFamilyNameTruncation; - -/** - Mandatory on AAMVA 04, 05, 06, 07, 08 barcodes. - Optional on Compact barcodes. - - A code that indicates whether a field has been truncated (T), has not been - truncated (N), or – unknown whether truncated (U). - */ -PP_EXTERN NSString* const kPPFirstNameTruncation; - -/** - Mandatory on AAMVA 04, 05, 06, 07, 08 - - A code that indicates whether a field has been truncated (T), has not been - truncated (N), or – unknown whether truncated (U). - */ -PP_EXTERN NSString* const kPPMiddleNameTruncation; - -/** - Optional on AAMVA 02, 03, 04, 05, 06, 07, 08 and Compact barcodes - - Country and municipality and/or state/province - */ -PP_EXTERN NSString* const kPPPlaceOfBirth; - -/** - Optional on all AAMVA barcodes - - On Compact barcodes, use kFullAddress - - Second line of street portion of the cardholder address. - */ -PP_EXTERN NSString* const kPPAddressStreet2; - -/** - Optional on AAMVA 02, 03, 04, 05, 06, 07, 08 and Compact barcodes - - Codes for race or ethnicity of the cardholder, as defined in ANSI D20. - - Race: - Code Description - AI Alaskan or American Indian (Having Origins in Any of The Original Peoples of - North America, and Maintaining Cultural Identification Through Tribal - Affiliation of Community Recognition) - AP Asian or Pacific Islander (Having Origins in Any of the Original Peoples of - the Far East, Southeast Asia, or Pacific Islands. This Includes China, India, - Japan, Korea, the Philippines Islands, and Samoa) - BK Black (Having Origins in Any of the Black Racial Groups of Africa) - W White (Having Origins in Any of The Original Peoples of Europe, North Africa, - or the Middle East) - - Ethnicity: - Code Description - H Hispanic Origin (A Person of Mexican, Puerto Rican, Cuban, Central or South - American or Other Spanish Culture or Origin, Regardless of Race) - O Not of Hispanic Origin (Any Person Other Than Hispanic) - U Unknown - - */ -PP_EXTERN NSString* const kPPRaceEthnicity; - -/** - Optional on AAMVA 01 - - PREFIX to Driver Name. Freeform as defined by issuing jurisdiction. - */ -PP_EXTERN NSString* const kPPNamePrefix; - -/** - Mandatory on AAMVA 02, 03, 04, 05, 06, 07, 08 and Compact barcodes. - - Country in which DL/ID is issued. U.S. = USA, Canada = CAN. - */ -PP_EXTERN NSString* const kPPCountryIdentification; - -/** - Optional on AAMVA version 01. - - Driver Residence Street Address 1. - */ -PP_EXTERN NSString* const kPPResidenceStreetAddress; - -/** - Optional on AAMVA version 01. - - Driver Residence Street Address 2. - */ -PP_EXTERN NSString* const kPPResidenceStreetAddress2; - -/** - Optional on AAMVA version 01. - - Driver Residence City - */ -PP_EXTERN NSString* const kPPResidenceCity; - -/** - Optional on AAMVA version 01. - - Driver Residence Jurisdiction Code. - */ -PP_EXTERN NSString* const kPPResidenceJurisdictionCode; - -/** - Optional on AAMVA 01 barcodes. - - Driver Residence Postal Code. - */ -PP_EXTERN NSString* const kPPResidencePostalCode; - -/** - Optional on AAMVA 01 barcodes. - - Full residence address of the individual holding the Driver License or ID. - - The full address field contains up to four portions, separated with the "," delimiter: - Residence Street Address (required) - , (required if other address portions follow, otherwise optional) - Residence City (optional) - , (required if other address portions follow, otherwise optional) - Residence Jurisdiction Code (optional) - , (required if other address portions follow, otherwise optional) - Residence ZIP - Residence Postal Code (optional) - */ -PP_EXTERN NSString* const kPPResidenceFullAddress; - -/** - Optional on AAMVA 05, 06, 07, 08 - - Date on which the cardholder turns 18 years old. (MMDDCCYY format) - */ -PP_EXTERN NSString* const kPPUnder18; // nakon verzije 05 - -/** - Optional on AAMVA 05, 06, 07, 08 - - Date on which the cardholder turns 19 years old. (MMDDCCYY format) - */ -PP_EXTERN NSString* const kPPUnder19; // nakon verzije 05 - -/** - Optional on AAMVA 05, 06, 07, 08 - - Date on which the cardholder turns 21 years old. (MMDDCCYY format) - */ -PP_EXTERN NSString* const kPPUnder21; // nakon verzije 05 - -/** - Optional on AAMVA version 01. - - The number assigned to an individual by the Social Security Administration. - */ -PP_EXTERN NSString* const kPPSocialSecurityNumber; - -/** - Optional on AAMVA version 01. - - Driver "AKA" Social Security Number. FORMAT SAME AS DRIVER SOC SEC NUM. ALTERNATIVE NUMBERS(S) used as SS NUM. - */ -PP_EXTERN NSString* const kPPAKASocialSecurityNumber; - -/** - Optional on AAMVA 01 - - ALTERNATIVE MIDDLE NAME(s) or INITIALS of the individual holding the Driver License or ID. - Hyphenated names acceptable, spaces between names acceptable, but no other - use of special symbols - */ -PP_EXTERN NSString* const kPPAKAMiddleName; // samo 01 - -/** - Optional on AAMVA 01 - - ALTERNATIVE PREFIX to Driver Name. Freeform as defined by issuing jurisdiction. - */ -PP_EXTERN NSString* const kPPAKAPrefixName; // samo 01 - -/** - Optional on AAMVA 01, 06, 07, 08 - - Field that indicates that the cardholder is an organ donor = "1". - */ -PP_EXTERN NSString* const kPPOrganDonor; - -/** - Optional on AAMVA 07, 08 - - Field that indicates that the cardholder is a veteran = "1" - */ -PP_EXTERN NSString* const kPPVeteran; - -/** - Optional on AAMVA 01. (MMDDCCYY format) - - ALTERNATIVE DATES(S) given as date of birth. - */ -PP_EXTERN NSString* const kPPAKADateOfBirth; // samo za 01 - -//==============================================================/ -//========== 3. LICENSE DATA KEYS ============/ -//==============================================================/ - -/** - Mandatory on all AAMVA, Magnetic and Compact barcodes. - - This number uniquely identifies the issuing jurisdiction and can - be obtained by contacting the ISO Issuing Authority (AAMVA) - */ -PP_EXTERN NSString* const kPPIssuerIdentificationNumber; - -/** - Mandatory on all AAMVA, Magnetic and Compact barcodes. - - If document is non expiring than "Non expiring" is written in this field. - - Date on which the driving and identification privileges granted by the document are - no longer valid. (MMDDCCYY format) - */ -// internal note: Filled by DataExpander -PP_EXTERN NSString* const kPPDocumentExpirationDate; - -/** - Mandatory on all AAMVA and Compact barcodes. - Optional on Magnetic barcodes. - - Jurisdiction Version Number: This is a decimal value between 0 and 99 that - specifies the jurisdiction version level of the PDF417 bar code format. - Notwithstanding iterations of this standard, jurisdictions implement incremental - changes to their bar codes, including new jurisdiction-specific data, compression - algorithms for digitized images, digital signatures, or new truncation - conventions used for names and addresses. Each change to the bar code format - within each AAMVA version (above) must be noted, beginning with Jurisdiction - Version 00. - */ -PP_EXTERN NSString* const kPPJurisdictionVersionNumber; - -/** - Mandatory on all AAMVA and Magnetic barcodes. - - Jurisdiction-specific vehicle class / group code, designating the type - of vehicle the cardholder has privilege to drive. - */ -PP_EXTERN NSString* const kPPJurisdictionVehicleClass; - -/** - Mandatory on all AAMVA barcodes. - Optional on Magnetic barcodes. - - Jurisdiction-specific codes that represent restrictions to driving - privileges (such as airbrakes, automatic transmission, daylight only, etc.). - */ -PP_EXTERN NSString* const kPPJurisdictionRestrictionCodes; - -/** - Mandatory on all AAMVA barcodes. - Optional on Magnetic barcodes. - - Jurisdiction-specific codes that represent additional privileges - granted to the cardholder beyond the vehicle class (such as transportation of - passengers, hazardous materials, operation of motorcycles, etc.). - */ -PP_EXTERN NSString* const kPPJurisdictionEndorsementCodes; - -/** - Mandatory on all AAMVA and Compact barcodes. - - Date on which the document was issued. (MMDDCCYY format) - */ -// internal note: Filled by DataExpander -PP_EXTERN NSString* const kPPDocumentIssueDate; - -/** - Mandatory on AAMVA versions 02 and 03. - - Federally established codes for vehicle categories, endorsements, and restrictions - that are generally applicable to commercial motor vehicles. If the vehicle is not a - commercial vehicle, "NONE" is to be entered. - */ -FOUNDATION_EXPORT NSString* const kPPFederalCommercialVehicleCodes; - -/** - Optional on all AAMVA barcodes. - Mandatory on Compact barcodes. - - Jurisdictions may define a subfile to contain jurisdiction-specific information. - These subfiles are designated with the first character of “Z” and the second - character is the first letter of the jurisdiction's name. For example, "ZC" would - be the designator for a California or Colorado jurisdiction-defined subfile; "ZQ" - would be the designator for a Quebec jurisdiction-defined subfile. In the case of - a jurisdiction-defined subfile that has a first letter that could be more than - one jurisdiction (e.g. California, Colorado, Connecticut) then other data, like - the IIN or address, must be examined to determine the jurisdiction. - */ -PP_EXTERN NSString* const kPPIssuingJurisdiction; - -/** - Optional on all AAMVA barcodes. - Mandatory on Compact barcodes. - - Standard vehicle classification code(s) for cardholder. This data element is a - placeholder for future efforts to standardize vehicle classifications. - */ -PP_EXTERN NSString* const kPPStandardVehicleClassification; - - -/** - Optional on all AAMVA barcodes. - - Standard endorsement code(s) for cardholder. See codes in D20. This data element is a - placeholder for future efforts to standardize endorsement codes. - - Code Description - H Hazardous Material - This endorsement is required for the operation of any vehicle - transporting hazardous materials requiring placarding, as defined by U.S. - Department of Transportation regulations. - L Motorcycles – Including Mopeds/Motorized Bicycles. - N Tank - This endorsement is required for the operation of any vehicle transporting, - as its primary cargo, any liquid or gaseous material within a tank attached to the vehicle. - O Other Jurisdiction Specific Endorsement(s) - This code indicates one or more - additional jurisdiction assigned endorsements. - P Passenger - This endorsement is required for the operation of any vehicle used for - transportation of sixteen or more occupants, including the driver. - S School Bus - This endorsement is required for the operation of a school bus. School bus means a - CMV used to transport pre-primary, primary, or secondary school students from home to school, - from school to home, or to and from school sponsored events. School bus does not include a - bus used as common carrier (49 CRF 383.5). - T Doubles/Triples - This endorsement is required for the operation of any vehicle that would be - referred to as a double or triple. - X Combined Tank/HAZ-MAT - This endorsement may be issued to any driver who qualifies for - both the N and H endorsements. - */ -PP_EXTERN NSString* const kPPStandardEndorsementCode; - -/** - Optional on all AAMVA barcodes - - Standard restriction code(s) for cardholder. See codes in D20. This data element is a placeholder - for future efforts to standardize restriction codes. - - Code Description - B Corrective Lenses - C Mechanical Devices (Special Brakes, Hand Controls, or Other Adaptive Devices) - D Prosthetic Aid - E Automatic Transmission - F Outside Mirror - G Limit to Daylight Only - H Limit to Employment - I Limited Other - J Other - K CDL Intrastate Only - L Vehicles without air brakes - M Except Class A bus - N Except Class A and Class B bus - O Except Tractor-Trailer - V Medical Variance Documentation Required - W Farm Waiver - */ -PP_EXTERN NSString* const kPPStandardRestrictionCode; - -/** - Optional on AAMVA 02, 03, 04, 05, 06, 07, 08 and Compact barcodes - - Text that explains the jurisdiction-specific code(s) for classifications - of vehicles cardholder is authorized to drive. - */ -PP_EXTERN NSString* const kPPJurisdictionVehicleClassificationDescription; - -/** - Optional on AAMVA 02, 03, 04, 05, 06, 07, 08 and Compact barcodes - - Text that explains the jurisdiction-specific code(s) that indicates additional - driving privileges granted to the cardholder beyond the vehicle class. - */ -PP_EXTERN NSString* const kPPJurisdictionEndorsmentCodeDescription; - -/** - Optional on AAMVA 02, 03, 04, 05, 06, 07, 08 and Compact barcodes - - Text describing the jurisdiction-specific restriction code(s) that curtail driving privileges. - */ -PP_EXTERN NSString* const kPPJurisdictionRestrictionCodeDescription; - -/** - Optional on AAMVA 02, 03, 04, 05, 06, 07, 08 - - A string of letters and/or numbers that is affixed to the raw materials (card stock, - laminate, etc.) used in producing driver licenses and ID cards. (DHS recommended field) - */ -PP_EXTERN NSString* const kPPInventoryControlNumber; - -/** - Optional on AAMVA 04, 05, 06, 07, 08 and Compact barcodes - - DHS required field that indicates date of the most recent version change or - modification to the visible format of the DL/ID (MMDDCCYY format) - */ -PP_EXTERN NSString* const kPPCardRevisionDate; - -/** - Mandatory on AAMVA 02, 03, 04, 05, 06, 07, 08 and Magnetic barcodes. - Optional and Compact barcodes - - Number must uniquely identify a particular document issued to that customer - from others that may have been issued in the past. This number may serve multiple - purposes of document discrimination, audit information number, and/or inventory control. - */ -PP_EXTERN NSString* const kPPDocumentDiscriminator; - -/** - Optional on AAMVA 04, 05, 06, 07, 08 and Compact barcodes - - DHS required field that indicates that the cardholder has temporary lawful status = "1". - */ -PP_EXTERN NSString* const kPPLimitedDurationDocument; - -/** - Optional on AAMVA 02, 03, 04, 05, 06, 07, 08 and Compact barcodes - - A string of letters and/or numbers that identifies when, where, and by whom a driver - license/ID card was made. If audit information is not used on the card or the MRT, it - must be included in the driver record. - */ -PP_EXTERN NSString* const kPPAuditInformation; - -/** - Optional on AAMVA 04, 05, 06, 07, 08 and Compact barcodes - - DHS required field that indicates compliance: "M" = materially compliant; - "F" = fully compliant; and, "N" = non-compliant. - */ -PP_EXTERN NSString* const kPPComplianceType; - -/** - Optional on AAMVA version 01. - - Issue Timestamp. A string used by some jurisdictions to validate the document against their data base. - */ -PP_EXTERN NSString* const kPPIssueTimestamp; - -/** - Optional on AAMVA version 01. - - Driver Permit Expiration Date. MMDDCCYY format. Date permit expires. - */ -PP_EXTERN NSString* const kPPPermitExpirationDate; - -/** - Optional on AAMVA version 01. - - Type of permit. - */ -PP_EXTERN NSString* const kPPPermitIdentifier; - -/** - Optional on AAMVA version 01. - - Driver Permit Issue Date. MMDDCCYY format. Date permit was issued. - */ -PP_EXTERN NSString* const kPPPermitIssueDate; - -/** - Optional on AAMVA version 01. - - Number of duplicate cards issued for a license or ID if any. - */ -PP_EXTERN NSString* const kPPNumberOfDuplicates; - -/** - Optional on AAMVA 04, 05, 06, 07, 08 and Compact barcodes - - Date on which the hazardous material endorsement granted by the document is - no longer valid. (MMDDCCYY format) - */ -PP_EXTERN NSString* const kPPHAZMATExpirationDate; - -/** - Optional on AAMVA version 01. - - Medical Indicator/Codes. - STATE SPECIFIC. Freeform; Standard "TBD" - */ -PP_EXTERN NSString* const kPPMedicalIndicator; - -/** - Optional on AAMVA version 01. - - Non-Resident Indicator. "Y". Used by some jurisdictions to indicate holder of the document is a non-resident. - */ -PP_EXTERN NSString* const kPPNonResident; - -/** - Optional on AAMVA version 01. - - A number or alphanumeric string used by some jurisdictions to identify a "customer" across multiple data bases. - */ -PP_EXTERN NSString* const kPPUniqueCustomerId; - -/** - Optional on compact barcodes. - - Document discriminator. - */ -PP_EXTERN NSString* const kPPDataDiscriminator; - -/** - Optional on Magnetic barcodes. - - Month on which the driving and identification privileges granted by the document are - no longer valid. (MMYY format) - */ -PP_EXTERN NSString* const kPPDocumentExpirationMonth; - -/** - Optional on Magnetic barcodes. - - Field that indicates that the driving and identification privileges granted by the - document are nonexpiring = "1". - */ -PP_EXTERN NSString* const kPPDocumentNonexpiring; - -/** - Optional on Magnetic barcodes. - - Security version beeing used. - */ -PP_EXTERN NSString* const kPPSecurityVersion; - -#pragma mark - Keys for accessing raw barcode results - -//==============================================================/ -//======= KEYS FOR ACCESSING RAW BARCODE RESULTS ===============/ -//==============================================================/ - -/** - Raw pdf417 result - */ -PP_EXTERN NSString* const kPPPdf417; - -/** - Raw code128 result - */ -PP_EXTERN NSString* const kPPCode128; - -/** - Raw code39 result - */ -PP_EXTERN NSString* const kPPCode39; - -#pragma mark - PPUsdlRecognizerResult implementation - -/** - * Class representing result of scanning of US Driver's license barcodes. - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPUsdlRecognizerResult : PPRecognizerResult - -/** - * Returns a string value for a given key. - * - * @param key field key - * - * @return value for a given key - */ -- (NSString *)getField:(const NSString *)key; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:3f2ee03b6d9954f65f71aef77ab92ea773f415efe4e576eaabfb3a8d3f453b15 +size 29336 diff --git a/MicroBlink.framework/Headers/PPUsdlRecognizerSettings.h b/MicroBlink.framework/Headers/PPUsdlRecognizerSettings.h index bd94ebb9..bb39ac69 100644 --- a/MicroBlink.framework/Headers/PPUsdlRecognizerSettings.h +++ b/MicroBlink.framework/Headers/PPUsdlRecognizerSettings.h @@ -1,50 +1,3 @@ -// -// PPUsdlRecognizerSettings.h -// PhotoPayFramework -// -// Created by Jura on 26/02/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings class for configuring Usdl Recognizer - * - * Usdl Recognizer recognizer is used for scanning and parsing of PDF417 - * on the back sides of the US drivers license - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPUsdlRecognizerSettings : PPRecognizerSettings - -/** - * Set this to YES to scan even barcode not compliant with standards - * For example, malformed PDF417 barcodes which were incorrectly encoded - * - * Use only if necessary because it slows down the recognition process - * - * Default: NO - */ -@property (nonatomic) BOOL scanUncertain; - -/** - * Set this to YES to scan barcodes which don't have quiet zone (white area) around it - * - * Disable if you need a slight speed boost - * - * Default: YES - */ -@property (nonatomic) BOOL allowNullQuietZone; - -/** - * Set this to YES if you want to scan 1D barcodes if they are present on the DL. - * If NO, just PDF417 barcode will be scanned. - * - * Default: NO - */ -@property (nonatomic) BOOL scan1DCodes; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:eaa6dc7847873dd65cf9a26a00f5520143a06137dcb5bf94e1ccd8c767adaa2d +size 1202 diff --git a/MicroBlink.framework/Headers/PPZXingRecognizerResult.h b/MicroBlink.framework/Headers/PPZXingRecognizerResult.h index 88a775df..0f83e1e9 100644 --- a/MicroBlink.framework/Headers/PPZXingRecognizerResult.h +++ b/MicroBlink.framework/Headers/PPZXingRecognizerResult.h @@ -1,98 +1,3 @@ -// -// PPZXingRecognizerResult.h -// Pdf417Framework -// -// Created by Jura on 11/07/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerResult.h" -#import "PPBarcodeDetailedData.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Type of the barcode which BarDecoderRecognizer returnes - */ -typedef NS_ENUM(NSUInteger, PPZXingBarcodeType){ - /** Code 39 */ - PPZXingBarcodeTypeAztec, - /** Code 128 */ - PPZXingBarcodeTypeCode128, - /** Code 39 */ - PPZXingBarcodeTypeCode39, - /** Data Matrix */ - PPZXingBarcodeTypeDataMatrix, - /** EAN 13 */ - PPZXingBarcodeTypeEAN13, - /** EAN 8 */ - PPZXingBarcodeTypeEAN8, - /** ITF */ - PPZXingBarcodeTypeITF, - /** QR code */ - PPZXingBarcodeTypeQR, - /** UPCA */ - PPZXingBarcodeTypeUPCA, - /** UPCE */ - PPZXingBarcodeTypeUPCE, - -}; - -/** - * Result of scanning with ZXing Recognizer - * - * Contains raw Barcode detailed data, barcode type, and methods for getting string representation of results. - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPZXingRecognizerResult : PPRecognizerResult - -/** - * Type of the barcode scanned - * - * @return Type of the barcode - */ -- (PPZXingBarcodeType)barcodeType; - -/** - * Byte array with result of the scan - */ -- (NSData *)data; - -/** - * Retrieves string content of the scanned data using guessed encoding. - * - * If you're 100% sure you know the exact encoding in the barcode, use stringUsingEncoding: method. - * Otherwise stringUsingDefaultEncoding. - * - * This method uses `[NSString stringEncodingForData:encodingOptions:convertedString:usedLossyConversion:` method for - * guessing the encoding. - * - * @return created string, or nil if encoding couldn't be found. - */ -- (NSString *)stringUsingGuessedEncoding; - -/** - * Retrieves string content of the scanned data using given encoding. - * - * @param encoding The encoding for the returned string. - * - * @return String created from data property, using given encoding - */ -- (NSString *)stringUsingEncoding:(NSStringEncoding)encoding; - -/** - * Raw barcode detailed result - */ -- (PPBarcodeDetailedData *)rawData; - -/** - * Method which gives string representation for a given PPZXingBarcodeType enum value. - * - * @param type PPZXingBarcodeType enum value - * - * @return String representation of a given PPZXingBarcodeType enum value. - */ -+ (NSString *)toTypeName:(PPZXingBarcodeType)type; - -@end - -NS_ASSUME_NONNULL_END \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:f97195c9a4a400f19bb7bdb7d3689c651fc9a25c2800f766ce285abb69bc0b34 +size 2401 diff --git a/MicroBlink.framework/Headers/PPZXingRecognizerSettings.h b/MicroBlink.framework/Headers/PPZXingRecognizerSettings.h index de17b741..0c3c2376 100644 --- a/MicroBlink.framework/Headers/PPZXingRecognizerSettings.h +++ b/MicroBlink.framework/Headers/PPZXingRecognizerSettings.h @@ -1,103 +1,3 @@ -// -// PPZXingRecognizerSettings.h -// Pdf417Framework -// -// Created by Jura on 10/07/15. -// Copyright (c) 2015 MicroBlink Ltd. All rights reserved. -// - -#import "PPRecognizerSettings.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Settings class for configuring ZXing Recognizer - * - * ZXIngRecognizer recognizer is used for scanning most of 1D barcode formats, and 2D format - * such as Aztec, DataMatrix and QR code - */ -PP_CLASS_AVAILABLE_IOS(6.0) @interface PPZXingRecognizerSettings : PPRecognizerSettings - -/** - * Set this to YES to scan Aztec 2D barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanAztec; - -/** - * Set this to YES to scan Code 128 1D barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanCode128; - -/** - * Set this to YES to scan Code 39 1D barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanCode39; - -/** - * Set this to YES to scan DataMatrix 2D barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanDataMatrix; - -/** - * Set this to YES to scan EAN 13 barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanEAN13; - -/** - * Set this to YES to scan EAN8 barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanEAN8; - -/** - * Set this to YES to scan ITF barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanITF; - -/** - * Set this to YES to scan QR barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanQR; - -/** - * Set this to YES to scan UPCA barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanUPCA; - -/** - * Set this to YES to scan UPCE barcodes - * - * Default: NO - */ -@property (nonatomic) BOOL scanUPCE; - -/** - * Set this to YES to allow scanning barcodes with inverted intensities - * (i.e. white barcodes on black background) - * - * Default: NO - * - * @Warning: this option doubles frame processing time - */ -@property (nonatomic) BOOL scanInverse; - -@end - -NS_ASSUME_NONNULL_END +version https://git-lfs.github.com/spec/v1 +oid sha256:e5d963f4b283dd0f867f285af5c72582beccb294901c10e829fc9780efef491b +size 1855 diff --git a/MicroBlink.framework/Info.plist b/MicroBlink.framework/Info.plist index b8976b4d..a8228be3 100644 Binary files a/MicroBlink.framework/Info.plist and b/MicroBlink.framework/Info.plist differ diff --git a/MicroBlink.framework/MicroBlink b/MicroBlink.framework/MicroBlink index 4936469f..7a739b90 100644 Binary files a/MicroBlink.framework/MicroBlink and b/MicroBlink.framework/MicroBlink differ diff --git a/MicroBlink.framework/Modules/module.modulemap b/MicroBlink.framework/Modules/module.modulemap index 0fe49ff7..fa926b77 100644 --- a/MicroBlink.framework/Modules/module.modulemap +++ b/MicroBlink.framework/Modules/module.modulemap @@ -1,6 +1,3 @@ -framework module MicroBlink { - umbrella header "MicroBlink.h" - - export * - module * { export * } -} \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:d88d17ef68c09dd1be2d81ab89130a277b2bdcaf739ba4954d3abf98327c9baa +size 106 diff --git a/MicroBlink.framework/_CodeSignature/CodeDirectory b/MicroBlink.framework/_CodeSignature/CodeDirectory index 2e55edc5..3171c25f 100644 Binary files a/MicroBlink.framework/_CodeSignature/CodeDirectory and b/MicroBlink.framework/_CodeSignature/CodeDirectory differ diff --git a/MicroBlink.framework/_CodeSignature/CodeRequirements b/MicroBlink.framework/_CodeSignature/CodeRequirements index 7aa8ae8b..4d568db3 100644 Binary files a/MicroBlink.framework/_CodeSignature/CodeRequirements and b/MicroBlink.framework/_CodeSignature/CodeRequirements differ diff --git a/MicroBlink.framework/_CodeSignature/CodeRequirements-1 b/MicroBlink.framework/_CodeSignature/CodeRequirements-1 new file mode 100644 index 00000000..3b88abf2 --- /dev/null +++ b/MicroBlink.framework/_CodeSignature/CodeRequirements-1 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edeeafebd96bb2766e63899f24cbba97f979cb08a1b7202c9adef7933e728646 +size 249 diff --git a/MicroBlink.framework/_CodeSignature/CodeResources b/MicroBlink.framework/_CodeSignature/CodeResources index d9af1924..058a6ba5 100644 --- a/MicroBlink.framework/_CodeSignature/CodeResources +++ b/MicroBlink.framework/_CodeSignature/CodeResources @@ -1,583 +1,3 @@ - - - - - files - - Headers/MicroBlink.h - - KHXZzLpnWfVHasy/Dh5lrj/7114= - - Headers/PPBarDecoderRecognizerResult.h - - Jaic1za6HhpEJZC+nwUW71U0IpQ= - - Headers/PPBarDecoderRecognizerSettings.h - - ZvUEtnDYnpGxNhKQO9ls6w95Bu8= - - Headers/PPBarcodeDetailedData.h - - 1dPw0atd+DjWPX62msjs1LD9yLY= - - Headers/PPBaseOverlayViewController.h - - KcmFsSgtwUqtMX7P7ktWKYzLGSQ= - - Headers/PPBlinkBarcodeRecognizers.h - - H2GNCrwLSr/2s77V0YpAAk25Ih0= - - Headers/PPBlinkIDRecognizers.h - - bZBj+LuChUA8hK2biEYjrsBo9uk= - - Headers/PPCameraSettings.h - - zXv5bPVTyFR0j+gSCrvHeI0xrU0= - - Headers/PPCoordinator.h - - Pr+YZdxhDnKyiEwIBF8BaOkRjZU= - - Headers/PPDetectionStatus.h - - 1VsHeWbogknsrORzcSnKQSVRvEU= - - Headers/PPDetectorRecognizerResult.h - - 2r/UBSrcw+GSqb9pgqFyB+sGlI0= - - Headers/PPDetectorRecognizerSettings.h - - /Nyd1k2VXAmhv8+sYT47NNYlvYw= - - Headers/PPDetectorResult.h - - 06/QH1XN0J8zQgzfBvh9XrIIFx8= - - Headers/PPDetectorSettings.h - - +v/R4ACb7Uiga7Oq0RDRdgonpoU= - - Headers/PPDocumentDecodingInfo.h - - 2/puGbwiByiuQhs5FsuKu7MrJbQ= - - Headers/PPDocumentDetectorResult.h - - DsY21P6ml85UvrpTjH4wnl6UEIo= - - Headers/PPDocumentDetectorSettings.h - - dF647X22Y5YwQhrc26X2AUnQ/7Q= - - Headers/PPDocumentSpecification.h - - KjNMvqf9P09xz10tSPvlqYSblB8= - - Headers/PPImageMetadata.h - - gVyiIBsE01DJ9hBiIbhykb+TiZM= - - Headers/PPLicenseSettings.h - - RFS9a1O1Ck9/HlMek1Aw4x9GQpg= - - Headers/PPMetadata.h - - 8dfund1G41gSx9j/z9LAtgQ404s= - - Headers/PPMetadataSettings.h - - coigf634hVCTdQbTl8Jnegmu+Ls= - - Headers/PPMicroBlinkDefines.h - - uSwGo6yFUXYakjV9uOs0lEEJ1rU= - - Headers/PPModernBaseOverlayViewController.h - - QKoVROJaCKwRZgnHOEOeKAlEhjo= - - Headers/PPModernOcrResultOverlaySubview.h - - fDWZ4KxoiRKOOMSxv4Vav49SP2c= - - Headers/PPModernViewfinderOverlaySubview.h - - QNXbddxKugXpPnJW158OHAEsEiY= - - Headers/PPMrtdDetectorResult.h - - PAxCk7m28r6FiJu6QqlynGGK/qE= - - Headers/PPMrtdDetectorSettings.h - - goujFKmn3egCEHVLJyKHYnztup4= - - Headers/PPMrtdRecognizerResult.h - - FHjWf5IsmfkDzUVJWo01jMZQq9w= - - Headers/PPMrtdRecognizerSettings.h - - LU4JHU2djpKOTD7MHBXYUAU7gkw= - - Headers/PPMultiDetectorResult.h - - rxm4K4s/ClNTZVScGnE4SYPOyO4= - - Headers/PPMultiDetectorSettings.h - - M0rFmPZg6gaxBkltEfoYmJFtsSE= - - Headers/PPMyKadRecognizerResult.h - - XgVINDRGy1+rqRgicUEBYL7FnXE= - - Headers/PPMyKadRecognizerSettings.h - - +HQyCIG06ficF7rba8WYr3bUOgk= - - Headers/PPOcrFont.h - - RlQ0T/3XC3sxLIrztKe00phC1js= - - Headers/PPOcrLayout.h - - NyYatGdOG9xirPeuguO/8G0fioU= - - Headers/PPOcrResultOverlaySubview.h - - +wbxg9WgVnAxs7t3YS9TZUewKlE= - - Headers/PPOverlaySubview.h - - s4mJHyq4Cizk+lVs4i1UQMTZxNs= - - Headers/PPOverlayViewController.h - - DlSyXJe/W0/Eu3unDbkY031m2F8= - - Headers/PPPdf417RecognizerResult.h - - g8H1GYAm9UAhw/SK/fET1kSaAiI= - - Headers/PPPdf417RecognizerSettings.h - - 55cQXf8S+DiOo6RWudIaSXvq5Kg= - - Headers/PPQuadDetectorResult.h - - 6ZMoJQpEGq1bd20OFcn+YERffqk= - - Headers/PPQuadDetectorSettings.h - - x+u3ZJcsUYzznIdhv9VvZVEpvyE= - - Headers/PPQuadrangle.h - - o5nU7+s1Q1y/oRnT1NF3+FL5Es0= - - Headers/PPRecognizerResult.h - - V82Vh+CUD+hWxU/UsmJd+UGYK60= - - Headers/PPRecognizerSettings.h - - Wn3Iq2Y13Mx9FX6XndTku/CktOM= - - Headers/PPScanDelegate.h - - rj/HOoGqE3lCbccivjeVQNYtLec= - - Headers/PPScanSettings.h - - UAmkHqcyaGL4Bywv9d/eZhiDuTk= - - Headers/PPScanningViewController.h - - HQainKZd+HLbM7DkxqZH2hHtrnY= - - Headers/PPSettings.h - - +1jk8JtqIm7DbYFSczqqFPNA1x0= - - Headers/PPTextMetadata.h - - J+gc2atekGDvyalwepREgMJswH0= - - Headers/PPUiSettings.h - - A9LztgTZFjFKb1YwXmi8Y5fPFk0= - - Headers/PPUkdlRecognizerResult.h - - TToXXfo3VJ38qvgO85jbMUQlsiI= - - Headers/PPUkdlRecognizerSettings.h - - xZsr2ktZt4h8nZfKS8TqjxKFIBQ= - - Headers/PPUsdlRecognizerResult.h - - wiMO5S4x8DVVAV6yXnEa7kxLMds= - - Headers/PPUsdlRecognizerSettings.h - - AaXM8A2PoB98n5/jUoQxvIGeX+0= - - Headers/PPZXingRecognizerResult.h - - 8YFq0XAlTb2C9gpkjmTDkpwtPZM= - - Headers/PPZXingRecognizerSettings.h - - 5LIzSyWudXe2CzPqFedWtsPfavs= - - Info.plist - - HwLidGJRV0/N4zCmMRd+371/HSY= - - Modules/module.modulemap - - r1IMnO5oqrKTdbYvy5j7J0DRUQ4= - - - files2 - - Headers/MicroBlink.h - - KHXZzLpnWfVHasy/Dh5lrj/7114= - - Headers/PPBarDecoderRecognizerResult.h - - Jaic1za6HhpEJZC+nwUW71U0IpQ= - - Headers/PPBarDecoderRecognizerSettings.h - - ZvUEtnDYnpGxNhKQO9ls6w95Bu8= - - Headers/PPBarcodeDetailedData.h - - 1dPw0atd+DjWPX62msjs1LD9yLY= - - Headers/PPBaseOverlayViewController.h - - KcmFsSgtwUqtMX7P7ktWKYzLGSQ= - - Headers/PPBlinkBarcodeRecognizers.h - - H2GNCrwLSr/2s77V0YpAAk25Ih0= - - Headers/PPBlinkIDRecognizers.h - - bZBj+LuChUA8hK2biEYjrsBo9uk= - - Headers/PPCameraSettings.h - - zXv5bPVTyFR0j+gSCrvHeI0xrU0= - - Headers/PPCoordinator.h - - Pr+YZdxhDnKyiEwIBF8BaOkRjZU= - - Headers/PPDetectionStatus.h - - 1VsHeWbogknsrORzcSnKQSVRvEU= - - Headers/PPDetectorRecognizerResult.h - - 2r/UBSrcw+GSqb9pgqFyB+sGlI0= - - Headers/PPDetectorRecognizerSettings.h - - /Nyd1k2VXAmhv8+sYT47NNYlvYw= - - Headers/PPDetectorResult.h - - 06/QH1XN0J8zQgzfBvh9XrIIFx8= - - Headers/PPDetectorSettings.h - - +v/R4ACb7Uiga7Oq0RDRdgonpoU= - - Headers/PPDocumentDecodingInfo.h - - 2/puGbwiByiuQhs5FsuKu7MrJbQ= - - Headers/PPDocumentDetectorResult.h - - DsY21P6ml85UvrpTjH4wnl6UEIo= - - Headers/PPDocumentDetectorSettings.h - - dF647X22Y5YwQhrc26X2AUnQ/7Q= - - Headers/PPDocumentSpecification.h - - KjNMvqf9P09xz10tSPvlqYSblB8= - - Headers/PPImageMetadata.h - - gVyiIBsE01DJ9hBiIbhykb+TiZM= - - Headers/PPLicenseSettings.h - - RFS9a1O1Ck9/HlMek1Aw4x9GQpg= - - Headers/PPMetadata.h - - 8dfund1G41gSx9j/z9LAtgQ404s= - - Headers/PPMetadataSettings.h - - coigf634hVCTdQbTl8Jnegmu+Ls= - - Headers/PPMicroBlinkDefines.h - - uSwGo6yFUXYakjV9uOs0lEEJ1rU= - - Headers/PPModernBaseOverlayViewController.h - - QKoVROJaCKwRZgnHOEOeKAlEhjo= - - Headers/PPModernOcrResultOverlaySubview.h - - fDWZ4KxoiRKOOMSxv4Vav49SP2c= - - Headers/PPModernViewfinderOverlaySubview.h - - QNXbddxKugXpPnJW158OHAEsEiY= - - Headers/PPMrtdDetectorResult.h - - PAxCk7m28r6FiJu6QqlynGGK/qE= - - Headers/PPMrtdDetectorSettings.h - - goujFKmn3egCEHVLJyKHYnztup4= - - Headers/PPMrtdRecognizerResult.h - - FHjWf5IsmfkDzUVJWo01jMZQq9w= - - Headers/PPMrtdRecognizerSettings.h - - LU4JHU2djpKOTD7MHBXYUAU7gkw= - - Headers/PPMultiDetectorResult.h - - rxm4K4s/ClNTZVScGnE4SYPOyO4= - - Headers/PPMultiDetectorSettings.h - - M0rFmPZg6gaxBkltEfoYmJFtsSE= - - Headers/PPMyKadRecognizerResult.h - - XgVINDRGy1+rqRgicUEBYL7FnXE= - - Headers/PPMyKadRecognizerSettings.h - - +HQyCIG06ficF7rba8WYr3bUOgk= - - Headers/PPOcrFont.h - - RlQ0T/3XC3sxLIrztKe00phC1js= - - Headers/PPOcrLayout.h - - NyYatGdOG9xirPeuguO/8G0fioU= - - Headers/PPOcrResultOverlaySubview.h - - +wbxg9WgVnAxs7t3YS9TZUewKlE= - - Headers/PPOverlaySubview.h - - s4mJHyq4Cizk+lVs4i1UQMTZxNs= - - Headers/PPOverlayViewController.h - - DlSyXJe/W0/Eu3unDbkY031m2F8= - - Headers/PPPdf417RecognizerResult.h - - g8H1GYAm9UAhw/SK/fET1kSaAiI= - - Headers/PPPdf417RecognizerSettings.h - - 55cQXf8S+DiOo6RWudIaSXvq5Kg= - - Headers/PPQuadDetectorResult.h - - 6ZMoJQpEGq1bd20OFcn+YERffqk= - - Headers/PPQuadDetectorSettings.h - - x+u3ZJcsUYzznIdhv9VvZVEpvyE= - - Headers/PPQuadrangle.h - - o5nU7+s1Q1y/oRnT1NF3+FL5Es0= - - Headers/PPRecognizerResult.h - - V82Vh+CUD+hWxU/UsmJd+UGYK60= - - Headers/PPRecognizerSettings.h - - Wn3Iq2Y13Mx9FX6XndTku/CktOM= - - Headers/PPScanDelegate.h - - rj/HOoGqE3lCbccivjeVQNYtLec= - - Headers/PPScanSettings.h - - UAmkHqcyaGL4Bywv9d/eZhiDuTk= - - Headers/PPScanningViewController.h - - HQainKZd+HLbM7DkxqZH2hHtrnY= - - Headers/PPSettings.h - - +1jk8JtqIm7DbYFSczqqFPNA1x0= - - Headers/PPTextMetadata.h - - J+gc2atekGDvyalwepREgMJswH0= - - Headers/PPUiSettings.h - - A9LztgTZFjFKb1YwXmi8Y5fPFk0= - - Headers/PPUkdlRecognizerResult.h - - TToXXfo3VJ38qvgO85jbMUQlsiI= - - Headers/PPUkdlRecognizerSettings.h - - xZsr2ktZt4h8nZfKS8TqjxKFIBQ= - - Headers/PPUsdlRecognizerResult.h - - wiMO5S4x8DVVAV6yXnEa7kxLMds= - - Headers/PPUsdlRecognizerSettings.h - - AaXM8A2PoB98n5/jUoQxvIGeX+0= - - Headers/PPZXingRecognizerResult.h - - 8YFq0XAlTb2C9gpkjmTDkpwtPZM= - - Headers/PPZXingRecognizerSettings.h - - 5LIzSyWudXe2CzPqFedWtsPfavs= - - Modules/module.modulemap - - r1IMnO5oqrKTdbYvy5j7J0DRUQ4= - - - rules - - ^ - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^ - - weight - 20 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ - - nested - - weight - 10 - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^[^/]+$ - - nested - - weight - 10 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - +version https://git-lfs.github.com/spec/v1 +oid sha256:d7fda3bf03fe7dba7093cb985e5d5b3cc0e0820023691a03d7f9fdf7e9f038c9 +size 25014 diff --git a/MicroBlink.framework/_CodeSignature/CodeSignature b/MicroBlink.framework/_CodeSignature/CodeSignature index fcc3f275..bb48a2be 100644 Binary files a/MicroBlink.framework/_CodeSignature/CodeSignature and b/MicroBlink.framework/_CodeSignature/CodeSignature differ diff --git a/MicroBlink.framework/_CodeSignature/CodeTopDirectory b/MicroBlink.framework/_CodeSignature/CodeTopDirectory new file mode 100644 index 00000000..38f8e4b7 --- /dev/null +++ b/MicroBlink.framework/_CodeSignature/CodeTopDirectory @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ce22488cf2c4f182560aa5800fd253e72cd6dc4dc8d2537d1fb98fff89f022b +size 28 diff --git a/PPBlinkID.podspec b/PPBlinkID.podspec index a2c7154a..b2b3726d 100644 --- a/PPBlinkID.podspec +++ b/PPBlinkID.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "PPBlinkID" - s.version = "1.3.0" + s.version = "1.4.0" s.summary = "A delightful component for barcode scanning" s.homepage = "http://microblink.com" @@ -31,7 +31,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/BlinkID/blinkid-ios.git', - :tag => 'v1.3.0' + :tag => 'v1.4.0' } s.preserve_paths = 'MicroBlink.embeddedframework/*' diff --git a/README.md b/README.md index f6e5bab8..d3ed3b34 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ BlinkID is a part of family of SDKs developed by [MicroBlink](http://www.microbl - Read the ["Getting Started" guide](https://github.com/BlinkID/blinkid-ios/wiki/Getting-started) to integrate the SDK in your app(s) - [Generate](https://microblink.com/login?url=/customer/generatedemolicence) a **free demo license key** to start using the SDK in your app (registration required) - [Contact us](http://www.microblink.com) to get pricing info -- Check out the [comprehensive documentation](http://cocoadocs.org/docsets/PPBlinkID/) of all APIs available in PDF417.mobi SDK +- Check out the [comprehensive documentation](http://cocoadocs.org/docsets/PPBlinkID/) of all APIs available in BlinkID SDK - If you're using CocoaPods, you can easily try our sample apps by running the following command in your terminal window: ```shell @@ -38,7 +38,7 @@ pod try PPBlinkID ```ruby platform :ios, '7.0' -pod 'PPBlinkID', '~> 1.3.0' +pod 'PPBlinkID', '~> 1.4.0' ``` ## Requirements diff --git a/Release notes.md b/Release notes.md index 2336d269..2277f825 100644 --- a/Release notes.md +++ b/Release notes.md @@ -1,3 +1,33 @@ +## 1.4.0 + +- iOS bugfixes: + + - Fixed possible deadlock in some cases when MRTD documents are scanned. + - Fixed issue with OCR speed on arm7 devices when Accelerate framework was used. + - Fixed incorrect returning of Address and License number in UKDL scanning. + +- iOS updates: + + - PPOverlayViewController changed the way Overlay Subviews are added to the view hierarchy. Instead of calling `addOverlaySubview:` (which automatically added a view to view hierarachy), you now need to call `registerOverlaySubview:` (which registers subview for scanning events), and manually add subview to view hierarchy using `addSubview:` method. This change gives you more flexibility for adding views and managing autolayout and autoresizing masks. + + - Localization Macros MB_LOCALIZED and MB_LOCALIZED_FORMAT can now be overriden in your app to provide completely custom localization mechanisms. + + - Dramatically increased OCR engine initialization speed + + - Increased speed of scanning cancellation when Cancel button is pressed. + +- ID scanning improvements + + - Added EUDL recognizer (replaced UKDL recognizer). EUDL is capable of automatically detecting various EU Drivers licenses. Currently it works only on German and UK DLs. + - Fixed issue with 0 and O misclassifications in MRTD recognition + - Added support for Austrian MRTD ID documents + +- Internal changes: + + - Implementeded Templating API for easier implementation of new document types + - Implemented Face detection + - Implemented support for Eastern Arabic numeral characters + ## 1.3.0 - Added better integration for Swift diff --git a/Samples/BlinkID-sample-Swift/BlinkID-sample-Swift/ViewController.swift b/Samples/BlinkID-sample-Swift/BlinkID-sample-Swift/ViewController.swift index 321691ac..dee30cdb 100644 --- a/Samples/BlinkID-sample-Swift/BlinkID-sample-Swift/ViewController.swift +++ b/Samples/BlinkID-sample-Swift/BlinkID-sample-Swift/ViewController.swift @@ -11,6 +11,16 @@ import MicroBlink class ViewController: UIViewController, PPScanDelegate { + + /** + * Method allocates and initializes the Scanning coordinator object. + * Coordinator is initialized with settings for scanning + * Modify this method to include only those recognizer settings you need. This will give you optimal performance + * + * @param error Error object, if scanning isn't supported + * + * @return initialized coordinator + */ func coordinatorWithError(error: NSErrorPointer) -> PPCoordinator? { /** 0. Check if scanning is supported */ @@ -34,20 +44,59 @@ class ViewController: UIViewController, PPScanDelegate { /** * 3. Set up what is being scanned. See detailed guides for specific use cases. - * Here's an example for initializing MRTD and USDL scanning + * Remove undesired recognizers (added below) for optimal performance. */ - // To specify we want to perform MRTD (machine readable travel document) recognition, initialize the MRTD recognizer settings - let mrtdRecognizerSettings = PPMrtdRecognizerSettings() + do { // Remove this if you're not using MRTD recognition + + // To specify we want to perform MRTD (machine readable travel document) recognition, initialize the MRTD recognizer settings + let mrtdRecognizerSettings = PPMrtdRecognizerSettings() + + /** You can modify the properties of mrtdRecognizerSettings to suit your use-case */ + + // tell the library to get full image of the document. Setting this to YES makes sense just if + // settings.metadataSettings.dewarpedImage = YES, otherwise it wastes CPU time. + mrtdRecognizerSettings.dewarpFullDocument = false; + + // Add MRTD Recognizer setting to a list of used recognizer settings + settings.scanSettings.addRecognizerSettings(mrtdRecognizerSettings) + } + + do { // Remove this if you're not using USDL recognition + + // To specify we want to perform USDL (US Driver's license) recognition, initialize the USDL recognizer settings + let usdlRecognizerSettings = PPUsdlRecognizerSettings() + + /** You can modify the properties of usdlRecognizerSettings to suit your use-case */ + + // Add USDL Recognizer setting to a list of used recognizer settings + settings.scanSettings.addRecognizerSettings(usdlRecognizerSettings) + } + + do { // Remove this if you're not using UKDL recognition + + // To specify we want to perform UKDL (UK Driver's license) recognition, initialize the UKDL recognizer settings + let eudlRecognizerSettings = PPEudlRecognizerSettings() + + /** You can modify the properties of ukdlRecognizerSettings to suit your use-case */ - // Add MRTD Recognizer setting to a list of used recognizer settings - settings.scanSettings.addRecognizerSettings(mrtdRecognizerSettings) + // If you want to save the image of the UKDL, set this to YES + eudlRecognizerSettings.showFullDocument = true; - // To specify we want to perform USDL (US Driver's license) recognition, initialize the USDL recognizer settings - let usdlRecognizerSettings = PPUsdlRecognizerSettings() + // Add UKDL Recognizer setting to a list of used recognizer settings + settings.scanSettings.addRecognizerSettings(eudlRecognizerSettings) + } + + do { // Remove this if you're not using MyKad recognition - // Add USDL Recognizer setting to a list of used recognizer settings - settings.scanSettings.addRecognizerSettings(usdlRecognizerSettings) + // To specify we want to perform MyKad recognition, initialize the MyKad recognizer settings + let myKadRecognizerSettings = PPMyKadRecognizerSettings() + + /** You can modify the properties of myKadRecognizerSettings to suit your use-case */ + + // Add UKDL Recognizer setting to a list of used recognizer settings + settings.scanSettings.addRecognizerSettings(myKadRecognizerSettings) + } /** 4. Initialize the Scanning Coordinator object */ @@ -78,14 +127,15 @@ class ViewController: UIViewController, PPScanDelegate { } func scanningViewControllerUnauthorizedCamera(scanningViewController: UIViewController) { - + // Add any logic which handles UI when app user doesn't allow usage of the phone's camera } func scanningViewController(scanningViewController: UIViewController, didFindError error: NSError) { - + // Can be ignored. See description of the method } func scanningViewControllerDidClose(scanningViewController: UIViewController) { + // As scanning view controller is presented full screen and modally, dismiss it self.dismissViewControllerAnimated(true, completion: nil) } @@ -93,7 +143,11 @@ class ViewController: UIViewController, PPScanDelegate { let scanConroller = scanningViewController as! PPScanningViewController - // Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + /** + * Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + * Each member of results array will represent one result for a single processed image + * Usually there will be only one result. Multiple results are possible when there are 2 or more detected objects on a single image (i.e. pdf417 and QR code side by side) + */ // first, pause scanning until we process all the results scanConroller.pauseScanning() @@ -103,16 +157,30 @@ class ViewController: UIViewController, PPScanDelegate { // Collect data from the result for result in results { - if(result.isKindOfClass(PPMrtdRecognizerResult)) { + if (result.isKindOfClass(PPMrtdRecognizerResult)) { + /** MRTD was detected */ let mrtdResult = result as! PPMrtdRecognizerResult title = "MRTD" message = mrtdResult.description } - if(result.isKindOfClass(PPUsdlRecognizerResult)) { + if (result.isKindOfClass(PPUsdlRecognizerResult)) { + /** US drivers license was detected */ let usdlResult = result as! PPUsdlRecognizerResult title = "USDL" message = usdlResult.description } + if (result.isKindOfClass(PPEudlRecognizerResult)) { + /** EU drivers license was detected */ + let eudlResult = result as! PPEudlRecognizerResult + title = "EUDL" + message = eudlResult.description + } + if (result.isKindOfClass(PPMyKadRecognizerResult)) { + /** MyKad was detected */ + let myKadResult = result as! PPMyKadRecognizerResult + title = "MyKad" + message = myKadResult.description + } } //present the alert view with scanned results diff --git a/Samples/BlinkID-sample/BlinkID-sample.xcodeproj/project.pbxproj b/Samples/BlinkID-sample/BlinkID-sample.xcodeproj/project.pbxproj index e2677afb..dd0187fd 100644 --- a/Samples/BlinkID-sample/BlinkID-sample.xcodeproj/project.pbxproj +++ b/Samples/BlinkID-sample/BlinkID-sample.xcodeproj/project.pbxproj @@ -17,8 +17,8 @@ 1842A1CC1ACED3AA00DE6CAB /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1842A1CA1ACED3AA00DE6CAB /* Main.storyboard */; }; 1842A1CE1ACED3AA00DE6CAB /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1842A1CD1ACED3AA00DE6CAB /* Images.xcassets */; }; 1842A1D11ACED3AA00DE6CAB /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1842A1CF1ACED3AA00DE6CAB /* LaunchScreen.xib */; }; + 18827C2D1CD7A42E00248183 /* MicroBlink.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18827C2C1CD7A42E00248183 /* MicroBlink.framework */; }; 18A968CF1C44E26D003A408A /* MicroBlink.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 18A968CE1C44E26D003A408A /* MicroBlink.bundle */; }; - 18D0E84D1C399B5300E47EF5 /* MicroBlink.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18D0E84C1C399B5300E47EF5 /* MicroBlink.framework */; }; 18D0E8511C39A09B00E47EF5 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18D0E8501C39A09B00E47EF5 /* libiconv.tbd */; }; 18D0E8591C39A16D00E47EF5 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18D0E8581C39A16D00E47EF5 /* AudioToolbox.framework */; }; 18D0E85B1C39A18800E47EF5 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18D0E85A1C39A18800E47EF5 /* AssetsLibrary.framework */; }; @@ -39,8 +39,8 @@ 1842A1CB1ACED3AA00DE6CAB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 1842A1CD1ACED3AA00DE6CAB /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 1842A1D01ACED3AA00DE6CAB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + 18827C2C1CD7A42E00248183 /* MicroBlink.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MicroBlink.framework; path = ../../MicroBlink.framework; sourceTree = ""; }; 18A968CE1C44E26D003A408A /* MicroBlink.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = MicroBlink.bundle; path = ../../MicroBlink.bundle; sourceTree = ""; }; - 18D0E84C1C399B5300E47EF5 /* MicroBlink.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MicroBlink.framework; path = ../../MicroBlink.framework; sourceTree = ""; }; 18D0E8501C39A09B00E47EF5 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; 18D0E8581C39A16D00E47EF5 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 18D0E85A1C39A18800E47EF5 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; @@ -51,9 +51,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 18D0E84D1C399B5300E47EF5 /* MicroBlink.framework in Frameworks */, 18D0E8591C39A16D00E47EF5 /* AudioToolbox.framework in Frameworks */, 1809F2281C23061300DEE72E /* Accelerate.framework in Frameworks */, + 18827C2D1CD7A42E00248183 /* MicroBlink.framework in Frameworks */, 18D0E85B1C39A18800E47EF5 /* AssetsLibrary.framework in Frameworks */, 1809F22A1C23061B00DEE72E /* AVFoundation.framework in Frameworks */, 1809F22C1C23062300DEE72E /* CoreMedia.framework in Frameworks */, @@ -109,7 +109,7 @@ 1842A1E61ACED3EF00DE6CAB /* Frameworks */ = { isa = PBXGroup; children = ( - 18D0E84C1C399B5300E47EF5 /* MicroBlink.framework */, + 18827C2C1CD7A42E00248183 /* MicroBlink.framework */, 18A968CE1C44E26D003A408A /* MicroBlink.bundle */, 1809F2271C23061300DEE72E /* Accelerate.framework */, 18D0E8581C39A16D00E47EF5 /* AudioToolbox.framework */, @@ -306,7 +306,10 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - FRAMEWORK_SEARCH_PATHS = ../../; + FRAMEWORK_SEARCH_PATHS = ( + ../../, + "$(PROJECT_DIR)", + ); INFOPLIST_FILE = "BlinkID-sample/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.microblink.$(PRODUCT_NAME:rfc1034identifier)"; @@ -318,7 +321,10 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - FRAMEWORK_SEARCH_PATHS = ../../; + FRAMEWORK_SEARCH_PATHS = ( + ../../, + "$(PROJECT_DIR)", + ); INFOPLIST_FILE = "BlinkID-sample/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.microblink.$(PRODUCT_NAME:rfc1034identifier)"; diff --git a/Samples/BlinkID-sample/BlinkID-sample/ViewController.m b/Samples/BlinkID-sample/BlinkID-sample/ViewController.m index 4db74f19..6396a5ea 100644 --- a/Samples/BlinkID-sample/BlinkID-sample/ViewController.m +++ b/Samples/BlinkID-sample/BlinkID-sample/ViewController.m @@ -12,10 +12,6 @@ @interface ViewController () -@property (nonatomic, strong) UIViewController* cameraViewController; - -@property (nonatomic, strong) PPUsdlRecognizerResult *usdlRecognizerResult; - @end @implementation ViewController @@ -33,6 +29,7 @@ - (void)didReceiveMemoryWarning { /** * Method allocates and initializes the Scanning coordinator object. * Coordinator is initialized with settings for scanning + * Modify this method to include only those recognizer settings you need. This will give you optimal performance * * @param error Error object, if scanning isn't supported * @@ -62,13 +59,18 @@ - (PPCoordinator *)coordinatorWithError:(NSError**)error { settings.licenseSettings.licenseKey = @"NO3GLCN2-65O6NDWH-KFJ7IEAD-747A4K4K-XVTN2CYR-IXRWTKNZ-7JLWRKSV-BDQWXFQG"; // Valid temporarily - /** 3. Set up what is being scanned. See detailed guides for specific use cases. */ + /** + * 3. Set up what is being scanned. See detailed guides for specific use cases. + * Remove undesired recognizers (added below) for optimal performance. + */ { // Remove this if you're not using MRTD recognition // To specify we want to perform MRTD (machine readable travel document) recognition, initialize the MRTD recognizer settings PPMrtdRecognizerSettings *mrtdRecognizerSettings = [[PPMrtdRecognizerSettings alloc] init]; + /** You can modify the properties of mrtdRecognizerSettings to suit your use-case */ + // tell the library to get full image of the document. Setting this to YES makes sense just if // settings.metadataSettings.dewarpedImage = YES, otherwise it wastes CPU time. mrtdRecognizerSettings.dewarpFullDocument = NO; @@ -82,20 +84,24 @@ - (PPCoordinator *)coordinatorWithError:(NSError**)error { // To specify we want to perform USDL (US Driver's license) recognition, initialize the USDL recognizer settings PPUsdlRecognizerSettings *usdlRecognizerSettings = [[PPUsdlRecognizerSettings alloc] init]; + /** You can modify the properties of usdlRecognizerSettings to suit your use-case */ + // Add USDL Recognizer setting to a list of used recognizer settings [settings.scanSettings addRecognizerSettings:usdlRecognizerSettings]; } - { // Remove this if you're not using UKDL recognition + { // Remove this if you're not using EUDL recognition - // To specify we want to perform UKDL (UK Driver's license) recognition, initialize the UKDL recognizer settings - PPUkdlRecognizerSettings *ukdlRecognizerSettings = [[PPUkdlRecognizerSettings alloc] init]; + // To specify we want to perform EUDL (EU Driver's license) recognition, initialize the EUDL recognizer settings + PPEudlRecognizerSettings *eudlRecognizerSettings = [[PPEudlRecognizerSettings alloc] initWithEudlCountry:PPEudlCountryUnitedKingdom]; - // If you want to save the image of the UKDL, set this to YES - ukdlRecognizerSettings.showFullDocument = YES; + /** You can modify the properties of eudlRecognizerSettings to suit your use-case */ - // Add UKDL Recognizer setting to a list of used recognizer settings - [settings.scanSettings addRecognizerSettings:ukdlRecognizerSettings]; + // If you want to save the image of the EUDL, set this to YES + eudlRecognizerSettings.showFullDocument = YES; + + // Add EUDL Recognizer setting to a list of used recognizer settings + [settings.scanSettings addRecognizerSettings:eudlRecognizerSettings]; } /** 4. Initialize the Scanning Coordinator object */ @@ -123,14 +129,14 @@ - (IBAction)didTapScan:(id)sender { return; } - /** Allocate and present the scanning view controller */ + /** Create new scanning view controller */ UIViewController* scanningViewController = [coordinator cameraViewControllerWithDelegate:self]; // allow rotation if VC is displayed as a modal view controller scanningViewController.autorotate = YES; scanningViewController.supportedOrientations = UIInterfaceOrientationMaskAll; - /** You can use other presentation methods as well */ + /** Present the scanning view controller. You can use other presentation methods as well (instead of presentViewController) */ [self presentViewController:scanningViewController animated:YES completion:nil]; } @@ -154,7 +160,11 @@ - (void)scanningViewControllerDidClose:(UIViewController *)scanningViewController didOutputResults:(NSArray *)results { - // Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + /** + * Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + * Each member of results array will represent one result for a single processed image + * Usually there will be only one result. Multiple results are possible when there are 2 or more detected objects on a single image (i.e. pdf417 and QR code side by side) + */ // first, pause scanning until we process all the results [scanningViewController pauseScanning]; @@ -166,24 +176,25 @@ - (void)scanningViewController:(UIViewController *)sca for (PPRecognizerResult* result in results) { if ([result isKindOfClass:[PPMrtdRecognizerResult class]]) { + /** MRTD was detected */ PPMrtdRecognizerResult* mrtdResult = (PPMrtdRecognizerResult*)result; title = @"MRTD"; message = [mrtdResult description]; } if ([result isKindOfClass:[PPUsdlRecognizerResult class]]) { + /** US drivers license was detected */ PPUsdlRecognizerResult* usdlResult = (PPUsdlRecognizerResult*)result; title = @"USDL"; message = [usdlResult description]; - - - NSLog(@"%@", [usdlResult getField:kPPCustomerFamilyName]); } - if ([result isKindOfClass:[PPUkdlRecognizerResult class]]) { - PPUkdlRecognizerResult* ukdlResult = (PPUkdlRecognizerResult*)result; - title = @"UKDL"; - message = [ukdlResult description]; + if ([result isKindOfClass:[PPEudlRecognizerResult class]]) { + /** EU drivers license was detected */ + PPEudlRecognizerResult* eudlResult = (PPEudlRecognizerResult*)result; + title = @"EUDL"; + message = [eudlResult description]; } if ([result isKindOfClass:[PPMyKadRecognizerResult class]]) { + /** MyKad was detected */ PPMyKadRecognizerResult *myKadResult = (PPMyKadRecognizerResult *)result; title = @"MyKad"; message = [myKadResult description]; @@ -197,14 +208,14 @@ - (void)scanningViewController:(UIViewController *)sca - (void)scanningViewController:(UIViewController *)scanningViewController didOutputMetadata:(PPMetadata *)metadata { - // Check if metadata obtained is image + // Check if metadata obtained is image. You can set what type of image is outputed by setting different properties of PPMetadataSettings (currently, dewarpedImage is set at line 57) if ([metadata isKindOfClass:[PPImageMetadata class]]) { PPImageMetadata *imageMetadata = (PPImageMetadata *)metadata; - if ([imageMetadata.name isEqualToString:@"UKDL"]) { - UIImage *ukdlImage = [imageMetadata image]; - NSLog(@"We have dewarped and trimmed image of the UKDL, with size (%@, %@)", @(ukdlImage.size.width), @(ukdlImage.size.height)); + if ([imageMetadata.name isEqualToString:@"EUDL"]) { + UIImage *eudlImage = [imageMetadata image]; + NSLog(@"We have dewarped and trimmed image of the EUDL, with size (%@, %@)", @(eudlImage.size.width), @(eudlImage.size.height)); } else if ([imageMetadata.name isEqualToString:@"MRTD"]) { UIImage *mrtdImage = [imageMetadata image]; NSLog(@"We have dewarped and trimmed image of the Machine readable travel document, with size (%@, %@)", @(mrtdImage.size.width), @(mrtdImage.size.height)); diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.pbxproj b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.pbxproj new file mode 100644 index 00000000..19a2741a --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.pbxproj @@ -0,0 +1,358 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 181F2D821C5978BA00DBB3F7 /* MicroBlink.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 181F2D801C5978BA00DBB3F7 /* MicroBlink.bundle */; }; + 181F2D831C5978BA00DBB3F7 /* MicroBlink.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 181F2D811C5978BA00DBB3F7 /* MicroBlink.framework */; }; + 181F2D851C5978ED00DBB3F7 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 181F2D841C5978ED00DBB3F7 /* Accelerate.framework */; }; + 186226B71AB1B0A6002D71E5 /* en.strings in Resources */ = {isa = PBXBuildFile; fileRef = 186226B51AB1B0A6002D71E5 /* en.strings */; }; + 187392091AA4B1060031D6C9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 187392081AA4B1060031D6C9 /* main.m */; }; + 1873920C1AA4B1070031D6C9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1873920B1AA4B1070031D6C9 /* AppDelegate.m */; }; + 1873920F1AA4B1070031D6C9 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1873920E1AA4B1070031D6C9 /* ViewController.m */; }; + 187392121AA4B1070031D6C9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 187392101AA4B1070031D6C9 /* Main.storyboard */; }; + 187392141AA4B1070031D6C9 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 187392131AA4B1070031D6C9 /* Images.xcassets */; }; + 187392171AA4B1070031D6C9 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 187392151AA4B1070031D6C9 /* LaunchScreen.xib */; }; + 18790A1F1C80623D001FEF7F /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18790A1E1C80623D001FEF7F /* libc++.tbd */; }; + 18790A211C806240001FEF7F /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18790A201C806240001FEF7F /* libiconv.tbd */; }; + 18CC81F71B697101000F6DA5 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18CC81F61B697101000F6DA5 /* CoreMedia.framework */; }; + 18CC81F91B697106000F6DA5 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18CC81F81B697106000F6DA5 /* AVFoundation.framework */; }; + 18CC81FD1B697133000F6DA5 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18CC81FC1B697133000F6DA5 /* AudioToolbox.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 181F2D801C5978BA00DBB3F7 /* MicroBlink.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = MicroBlink.bundle; path = ../../MicroBlink.bundle; sourceTree = ""; }; + 181F2D811C5978BA00DBB3F7 /* MicroBlink.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MicroBlink.framework; path = ../../MicroBlink.framework; sourceTree = ""; }; + 181F2D841C5978ED00DBB3F7 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 186226B61AB1B0A6002D71E5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/en.strings; sourceTree = ""; }; + 187392031AA4B1060031D6C9 /* BlinkOCR-sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "BlinkOCR-sample.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 187392071AA4B1060031D6C9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 187392081AA4B1060031D6C9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 1873920A1AA4B1060031D6C9 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 1873920B1AA4B1070031D6C9 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 1873920D1AA4B1070031D6C9 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 1873920E1AA4B1070031D6C9 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + 187392111AA4B1070031D6C9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 187392131AA4B1070031D6C9 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + 187392161AA4B1070031D6C9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + 18790A1E1C80623D001FEF7F /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; + 18790A201C806240001FEF7F /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; + 18CC81F61B697101000F6DA5 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + 18CC81F81B697106000F6DA5 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 18CC81FC1B697133000F6DA5 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 187392001AA4B1060031D6C9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 18790A211C806240001FEF7F /* libiconv.tbd in Frameworks */, + 18790A1F1C80623D001FEF7F /* libc++.tbd in Frameworks */, + 181F2D851C5978ED00DBB3F7 /* Accelerate.framework in Frameworks */, + 181F2D831C5978BA00DBB3F7 /* MicroBlink.framework in Frameworks */, + 18CC81FD1B697133000F6DA5 /* AudioToolbox.framework in Frameworks */, + 18CC81F91B697106000F6DA5 /* AVFoundation.framework in Frameworks */, + 18CC81F71B697101000F6DA5 /* CoreMedia.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 187391FA1AA4B1060031D6C9 = { + isa = PBXGroup; + children = ( + 187392051AA4B1060031D6C9 /* BlinkOCR-sample */, + 189EA8DE1AADE7FE005732C3 /* Frameworks */, + 187392041AA4B1060031D6C9 /* Products */, + ); + sourceTree = ""; + }; + 187392041AA4B1060031D6C9 /* Products */ = { + isa = PBXGroup; + children = ( + 187392031AA4B1060031D6C9 /* BlinkOCR-sample.app */, + ); + name = Products; + sourceTree = ""; + }; + 187392051AA4B1060031D6C9 /* BlinkOCR-sample */ = { + isa = PBXGroup; + children = ( + 1873920A1AA4B1060031D6C9 /* AppDelegate.h */, + 1873920B1AA4B1070031D6C9 /* AppDelegate.m */, + 1873920D1AA4B1070031D6C9 /* ViewController.h */, + 1873920E1AA4B1070031D6C9 /* ViewController.m */, + 187392101AA4B1070031D6C9 /* Main.storyboard */, + 187392131AA4B1070031D6C9 /* Images.xcassets */, + 187392151AA4B1070031D6C9 /* LaunchScreen.xib */, + 187392061AA4B1060031D6C9 /* Supporting Files */, + ); + path = "BlinkOCR-sample"; + sourceTree = ""; + }; + 187392061AA4B1060031D6C9 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 187392071AA4B1060031D6C9 /* Info.plist */, + 187392081AA4B1060031D6C9 /* main.m */, + 186226B51AB1B0A6002D71E5 /* en.strings */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 189EA8DE1AADE7FE005732C3 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 181F2D841C5978ED00DBB3F7 /* Accelerate.framework */, + 181F2D801C5978BA00DBB3F7 /* MicroBlink.bundle */, + 181F2D811C5978BA00DBB3F7 /* MicroBlink.framework */, + 18CC81FC1B697133000F6DA5 /* AudioToolbox.framework */, + 18CC81F81B697106000F6DA5 /* AVFoundation.framework */, + 18CC81F61B697101000F6DA5 /* CoreMedia.framework */, + 18790A201C806240001FEF7F /* libiconv.tbd */, + 18790A1E1C80623D001FEF7F /* libc++.tbd */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 187392021AA4B1060031D6C9 /* BlinkOCR-sample */ = { + isa = PBXNativeTarget; + buildConfigurationList = 187392261AA4B1070031D6C9 /* Build configuration list for PBXNativeTarget "BlinkOCR-sample" */; + buildPhases = ( + 187391FF1AA4B1060031D6C9 /* Sources */, + 187392001AA4B1060031D6C9 /* Frameworks */, + 187392011AA4B1060031D6C9 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "BlinkOCR-sample"; + productName = "BlinkOCR-sample"; + productReference = 187392031AA4B1060031D6C9 /* BlinkOCR-sample.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 187391FB1AA4B1060031D6C9 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0610; + ORGANIZATIONNAME = MicroBlink; + TargetAttributes = { + 187392021AA4B1060031D6C9 = { + CreatedOnToolsVersion = 6.1.1; + }; + }; + }; + buildConfigurationList = 187391FE1AA4B1060031D6C9 /* Build configuration list for PBXProject "BlinkOCR-sample" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 187391FA1AA4B1060031D6C9; + productRefGroup = 187392041AA4B1060031D6C9 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 187392021AA4B1060031D6C9 /* BlinkOCR-sample */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 187392011AA4B1060031D6C9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 181F2D821C5978BA00DBB3F7 /* MicroBlink.bundle in Resources */, + 187392121AA4B1070031D6C9 /* Main.storyboard in Resources */, + 187392171AA4B1070031D6C9 /* LaunchScreen.xib in Resources */, + 186226B71AB1B0A6002D71E5 /* en.strings in Resources */, + 187392141AA4B1070031D6C9 /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 187391FF1AA4B1060031D6C9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1873920F1AA4B1070031D6C9 /* ViewController.m in Sources */, + 1873920C1AA4B1070031D6C9 /* AppDelegate.m in Sources */, + 187392091AA4B1060031D6C9 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 186226B51AB1B0A6002D71E5 /* en.strings */ = { + isa = PBXVariantGroup; + children = ( + 186226B61AB1B0A6002D71E5 /* Base */, + ); + name = en.strings; + sourceTree = ""; + }; + 187392101AA4B1070031D6C9 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 187392111AA4B1070031D6C9 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 187392151AA4B1070031D6C9 /* LaunchScreen.xib */ = { + isa = PBXVariantGroup; + children = ( + 187392161AA4B1070031D6C9 /* Base */, + ); + name = LaunchScreen.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 187392241AA4B1070031D6C9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ../../; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 187392251AA4B1070031D6C9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + FRAMEWORK_SEARCH_PATHS = ../../; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 187392271AA4B1070031D6C9 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = "BlinkOCR-sample/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 187392281AA4B1070031D6C9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = "BlinkOCR-sample/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 187391FE1AA4B1060031D6C9 /* Build configuration list for PBXProject "BlinkOCR-sample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 187392241AA4B1070031D6C9 /* Debug */, + 187392251AA4B1070031D6C9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 187392261AA4B1070031D6C9 /* Build configuration list for PBXNativeTarget "BlinkOCR-sample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 187392271AA4B1070031D6C9 /* Debug */, + 187392281AA4B1070031D6C9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 187391FB1AA4B1060031D6C9 /* Project object */; +} diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..0e1ac88c --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.xcworkspace/xcshareddata/BlinkOCR-sample.xcscmblueprint b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.xcworkspace/xcshareddata/BlinkOCR-sample.xcscmblueprint new file mode 100644 index 00000000..68b12035 --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.xcworkspace/xcshareddata/BlinkOCR-sample.xcscmblueprint @@ -0,0 +1,30 @@ +{ + "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "AA63F2D457B6DC44AF7B5D7453CDE1A971CBB026", + "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { + + }, + "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { + "05A39CB3291FA4B3ED668EC68184196B24068E81" : 0, + "AA63F2D457B6DC44AF7B5D7453CDE1A971CBB026" : 0 + }, + "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "A86AD168-95D9-48CE-9F5B-99104CD75E14", + "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { + "05A39CB3291FA4B3ED668EC68184196B24068E81" : "blinkocr-ios", + "AA63F2D457B6DC44AF7B5D7453CDE1A971CBB026" : "blinkid-ios\/" + }, + "DVTSourceControlWorkspaceBlueprintNameKey" : "BlinkOCR-sample", + "DVTSourceControlWorkspaceBlueprintVersion" : 204, + "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "Samples\/BlinkOCR-sample\/BlinkOCR-sample.xcodeproj", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:BlinkOCR\/blinkocr-ios.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "05A39CB3291FA4B3ED668EC68184196B24068E81" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:BlinkID\/blinkid-ios.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "AA63F2D457B6DC44AF7B5D7453CDE1A971CBB026" + } + ] +} \ No newline at end of file diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..08de0be8 --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded + + + diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/xcshareddata/xcschemes/BlinkOCR-sample.xcscheme b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/xcshareddata/xcschemes/BlinkOCR-sample.xcscheme new file mode 100644 index 00000000..05a9ff53 --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj/xcshareddata/xcschemes/BlinkOCR-sample.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/AppDelegate.h b/Samples/BlinkOCR-sample/BlinkOCR-sample/AppDelegate.h new file mode 100644 index 00000000..ed7ead57 --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/AppDelegate.h @@ -0,0 +1,16 @@ +// +// AppDelegate.h +// BlinkOCR-sample +// +// Created by Jura on 02/03/15. +// Copyright (c) 2015 MicroBlink. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end + diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/AppDelegate.m b/Samples/BlinkOCR-sample/BlinkOCR-sample/AppDelegate.m new file mode 100644 index 00000000..3335040a --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/AppDelegate.m @@ -0,0 +1,45 @@ +// +// AppDelegate.m +// BlinkOCR-sample +// +// Created by Jura on 02/03/15. +// Copyright (c) 2015 MicroBlink. All rights reserved. +// + +#import "AppDelegate.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Override point for customization after application launch. + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} + +- (void)applicationDidEnterBackground:(UIApplication *)application { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + +- (void)applicationWillEnterForeground:(UIApplication *)application { + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. +} + +- (void)applicationDidBecomeActive:(UIApplication *)application { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + +- (void)applicationWillTerminate:(UIApplication *)application { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + +@end diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/Base.lproj/LaunchScreen.xib b/Samples/BlinkOCR-sample/BlinkOCR-sample/Base.lproj/LaunchScreen.xib new file mode 100644 index 00000000..e5ea4250 --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/Base.lproj/LaunchScreen.xib @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/Base.lproj/Main.storyboard b/Samples/BlinkOCR-sample/BlinkOCR-sample/Base.lproj/Main.storyboard new file mode 100644 index 00000000..e4251c0e --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/Base.lproj/Main.storyboard @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/Base.lproj/en.strings b/Samples/BlinkOCR-sample/BlinkOCR-sample/Base.lproj/en.strings new file mode 100644 index 00000000..265a95f4 --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/Base.lproj/en.strings @@ -0,0 +1,11 @@ +/* + en.strings + BlinkOCR-sample + + Created by Jura on 12/03/15. + Copyright (c) 2015 MicroBlink. All rights reserved. +*/ + +"photopay_close" = "Cancel"; +"photopay_light_on" = "Light"; +"photopay_light_off" = "Light"; \ No newline at end of file diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/Images.xcassets/AppIcon.appiconset/Contents.json b/Samples/BlinkOCR-sample/BlinkOCR-sample/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..36d2c80d --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/Info.plist b/Samples/BlinkOCR-sample/BlinkOCR-sample/Info.plist new file mode 100644 index 00000000..fc964ce5 --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/Info.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + com.microblink.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/ViewController.h b/Samples/BlinkOCR-sample/BlinkOCR-sample/ViewController.h new file mode 100644 index 00000000..325ade46 --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/ViewController.h @@ -0,0 +1,18 @@ +// +// ViewController.h +// BlinkOCR-sample +// +// Created by Jura on 02/03/15. +// Copyright (c) 2015 MicroBlink. All rights reserved. +// + +#import + +@interface ViewController : UIViewController + +@property (weak, nonatomic) IBOutlet UILabel *labelResult; + +- (IBAction)didTapScan:(id)sender; + +@end + diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/ViewController.m b/Samples/BlinkOCR-sample/BlinkOCR-sample/ViewController.m new file mode 100644 index 00000000..c615f1db --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/ViewController.m @@ -0,0 +1,160 @@ +// +// ViewController.m +// BlinkOCR-sample +// +// Created by Jura on 02/03/15. +// Copyright (c) 2015 MicroBlink. All rights reserved. +// + +#import "ViewController.h" + +#import + +#import +#import + +@interface ViewController () + +@property (nonatomic, strong) NSString* rawOcrParserId; + +@property (nonatomic, strong) NSString* priceParserId; + +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.rawOcrParserId = @"Raw ocr"; + self.priceParserId = @"Price"; +} + +/** + * Method allocates and initializes the Scanning coordinator object. + * Coordinator is initialized with settings for scanning + * + * @param error Error object, if scanning isn't supported + * + * @return initialized coordinator + */ +- (PPCoordinator *)coordinatorWithError:(NSError**)error { + + /** 0. Check if scanning is supported */ + + if ([PPCoordinator isScanningUnsupportedForCameraType:PPCameraTypeBack error:error]) { + return nil; + } + + + /** 1. Initialize the Scanning settings */ + + // Initialize the scanner settings object. This initialize settings with all default values. + PPSettings *settings = [[PPSettings alloc] init]; + + + /** 2. Setup the license key */ + + // Visit www.microblink.com to get the license key for your app + settings.licenseSettings.licenseKey = @"HUZDFW2E-CIGKB4ZX-TSYPBTQH-LAVROHH2-PAJA2DXQ-ZYDVQKYX-DT5HQEQN-B3EAHQYA"; + + + /** + * 3. Set up what is being scanned. See detailed guides for specific use cases. + * Here's an example for initializing raw OCR scanning. + */ + + // To specify we want to perform OCR recognition, initialize the OCR recognizer settings + PPOcrRecognizerSettings *ocrRecognizerSettings = [[PPOcrRecognizerSettings alloc] init]; + + // We want raw OCR parsing + [ocrRecognizerSettings addOcrParser:[[PPRawOcrParserFactory alloc] init] name:self.rawOcrParserId]; + + // We want to parse prices from raw OCR result as well + [ocrRecognizerSettings addOcrParser:[[PPPriceOcrParserFactory alloc] init] name:self.priceParserId]; + + // Add the recognizer setting to a list of used recognizer + [settings.scanSettings addRecognizerSettings:ocrRecognizerSettings]; + + + /** 4. Initialize the Scanning Coordinator object */ + PPCoordinator *coordinator = [[PPCoordinator alloc] initWithSettings:settings]; + + return coordinator; +} + +- (IBAction)didTapScan:(id)sender { + + /** Instantiate the scanning coordinator */ + NSError *error; + PPCoordinator *coordinator = [self coordinatorWithError:&error]; + + /** If scanning isn't supported, present an error */ + if (coordinator == nil) { + NSString *messageString = [error localizedDescription]; + [[[UIAlertView alloc] initWithTitle:@"Warning" + message:messageString + delegate:nil + cancelButtonTitle:@"OK" + otherButtonTitles:nil, nil] show]; + + return; + } + + /** Allocate and present the scanning view controller */ + UIViewController* scanningViewController = [coordinator cameraViewControllerWithDelegate:self]; + + /** You can use other presentation methods as well */ + [self presentViewController:scanningViewController animated:YES completion:nil]; +} + +#pragma mark - PPScanDelegate + +- (void)scanningViewControllerUnauthorizedCamera:(UIViewController *)scanningViewController { + // Add any logic which handles UI when app user doesn't allow usage of the phone's camera +} + +- (void)scanningViewController:(UIViewController *)scanningViewController + didFindError:(NSError *)error { + // Can be ignored. See description of the method +} + +- (void)scanningViewControllerDidClose:(UIViewController *)scanningViewController { + + // As scanning view controller is presented full screen and modally, dismiss it + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)scanningViewController:(UIViewController *)scanningViewController + didOutputResults:(NSArray *)results { + + // Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + + // first, pause scanning until we process all the results + [scanningViewController pauseScanning]; + + // Collect data from the result + for (PPRecognizerResult* result in results) { + + if ([result isKindOfClass:[PPOcrRecognizerResult class]]) { + PPOcrRecognizerResult* ocrRecognizerResult = (PPOcrRecognizerResult*)result; + + NSLog(@"OCR results are:"); + NSLog(@"Raw ocr: %@", [ocrRecognizerResult parsedResultForName:self.rawOcrParserId]); + NSLog(@"Price: %@", [ocrRecognizerResult parsedResultForName:self.priceParserId]); + + PPOcrLayout* ocrLayout = [ocrRecognizerResult ocrLayout]; + NSLog(@"Dimensions of ocrLayout are %@", NSStringFromCGRect([ocrLayout box])); + } + }; + + // resume scanning while preserving internal recognizer state + [scanningViewController resumeScanningAndResetState:NO]; +} + +// dismiss the scanning view controller when user presses OK. +- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +@end diff --git a/Samples/BlinkOCR-sample/BlinkOCR-sample/main.m b/Samples/BlinkOCR-sample/BlinkOCR-sample/main.m new file mode 100644 index 00000000..7d537bd2 --- /dev/null +++ b/Samples/BlinkOCR-sample/BlinkOCR-sample/main.m @@ -0,0 +1,16 @@ +// +// main.m +// BlinkOCR-sample +// +// Created by Jura on 02/03/15. +// Copyright (c) 2015 MicroBlink. All rights reserved. +// + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/Samples/Detector-sample/Detector-sample/ViewController.m b/Samples/Detector-sample/Detector-sample/ViewController.m index 8a7b6116..34c9a444 100644 --- a/Samples/Detector-sample/Detector-sample/ViewController.m +++ b/Samples/Detector-sample/Detector-sample/ViewController.m @@ -76,7 +76,7 @@ - (PPCoordinator *)coordinatorWithError:(NSError**)error { PPDocumentSpecification *specification = [PPDocumentSpecification newFromPreset:PPDocumentPresetId1Card]; PPDocumentDecodingInfo *documentInfo = [[PPDocumentDecodingInfo alloc] init]; - [documentInfo addEntry:[[PPDocumentDecodingInfoEntry alloc] initWithLocation:CGRectMake(0.0, 0.0, 1.0, 1.0) dewarpedHeight:700]]; + [documentInfo addEntry:[[PPDocumentDecodingInfoEntry alloc] initWithLocation:CGRectMake(0.0, 0.0, 1.0, 1.0) dewarpedHeight:700 uniqueId:@"IDCard1"]]; [specification setDecodingInfo:documentInfo]; [documentDetectorSettings setDocumentSpecifications:@[specification]]; @@ -85,7 +85,7 @@ - (PPCoordinator *)coordinatorWithError:(NSError**)error { // MRTD detector PPDocumentDecodingInfo *mrtdInfo = [[PPDocumentDecodingInfo alloc] init]; - [mrtdInfo addEntry:[[PPDocumentDecodingInfoEntry alloc] initWithLocation:CGRectMake(0.0, 0.0, 1.0, 1.0) dewarpedHeight:700]]; + [mrtdInfo addEntry:[[PPDocumentDecodingInfoEntry alloc] initWithLocation:CGRectMake(0.0, 0.0, 1.0, 1.0) dewarpedHeight:700 uniqueId:@"MRTD"]]; PPMrtdDetectorSettings *mrtdDetectorSettings = [[PPMrtdDetectorSettings alloc] initWithDocumentDecodingInfo:mrtdInfo]; diff --git a/Samples/MyKad-sample/MyKad-sample/ViewController.m b/Samples/MyKad-sample/MyKad-sample/ViewController.m index f93060ca..727db419 100644 --- a/Samples/MyKad-sample/MyKad-sample/ViewController.m +++ b/Samples/MyKad-sample/MyKad-sample/ViewController.m @@ -140,22 +140,6 @@ - (void)scanningViewController:(UIViewController *)sca // Collect data from the result for (PPRecognizerResult* result in results) { - - if ([result isKindOfClass:[PPMrtdRecognizerResult class]]) { - PPMrtdRecognizerResult* mrtdResult = (PPMrtdRecognizerResult*)result; - title = @"MRTD"; - message = [mrtdResult description]; - } - if ([result isKindOfClass:[PPUsdlRecognizerResult class]]) { - PPUsdlRecognizerResult* usdlResult = (PPUsdlRecognizerResult*)result; - title = @"USDL"; - message = [usdlResult description]; - } - if ([result isKindOfClass:[PPUkdlRecognizerResult class]]) { - PPUkdlRecognizerResult* ukdlResult = (PPUkdlRecognizerResult*)result; - title = @"UKDL"; - message = [ukdlResult description]; - } if ([result isKindOfClass:[PPMyKadRecognizerResult class]]) { PPMyKadRecognizerResult *myKadResult = (PPMyKadRecognizerResult *)result; title = @"MyKad"; diff --git a/Samples/NoCamera-sample/NoCamera-sample/ViewController.m b/Samples/NoCamera-sample/NoCamera-sample/ViewController.m index 85fa3f01..916df7aa 100644 --- a/Samples/NoCamera-sample/NoCamera-sample/ViewController.m +++ b/Samples/NoCamera-sample/NoCamera-sample/ViewController.m @@ -32,6 +32,7 @@ - (void)didReceiveMemoryWarning { /** * Method allocates and initializes the Scanning coordinator object. * Coordinator is initialized with settings for scanning + * Modify this method to include only those recognizer settings you need. This will give you optimal performance * * @param error Error object, if scanning isn't supported * @@ -53,21 +54,31 @@ - (PPCoordinator *)coordinatorWithError:(NSError**)error { /** * 3. Set up what is being scanned. See detailed guides for specific use cases. - * Here's an example for initializing MRTD and USDL scanning + * Remove undesired recognizers (added below) for optimal performance. */ - // To specify we want to perform MRTD (machine readable travel document) recognition, initialize the MRTD recognizer settings - PPMrtdRecognizerSettings *mrtdRecognizerSettings = [[PPMrtdRecognizerSettings alloc] init]; - // Add MRTD Recognizer setting to a list of used recognizer settings - [settings.scanSettings addRecognizerSettings:mrtdRecognizerSettings]; + { // Remove this if you're not using MRTD recognition - // To specify we want to perform USDL (US Driver's license) recognition, initialize the USDL recognizer settings - PPUsdlRecognizerSettings *usdlRecognizerSettings = [[PPUsdlRecognizerSettings alloc] init]; + // To specify we want to perform MRTD (machine readable travel document) recognition, initialize the MRTD recognizer settings + PPMrtdRecognizerSettings *mrtdRecognizerSettings = [[PPMrtdRecognizerSettings alloc] init]; - // Add USDL Recognizer setting to a list of used recognizer settings - [settings.scanSettings addRecognizerSettings:usdlRecognizerSettings]; + /** You can modify the properties of mrtdRecognizerSettings to suit your use-case */ + // Add MRTD Recognizer setting to a list of used recognizer settings + [settings.scanSettings addRecognizerSettings:mrtdRecognizerSettings]; + } + + { // Remove this if you're not using USDL recognition + + // To specify we want to perform USDL (US Driver's license) recognition, initialize the USDL recognizer settings + PPUsdlRecognizerSettings *usdlRecognizerSettings = [[PPUsdlRecognizerSettings alloc] init]; + + /** You can modify the properties of usdlRecognizerSettings to suit your use-case */ + + // Add USDL Recognizer setting to a list of used recognizer settings + [settings.scanSettings addRecognizerSettings:usdlRecognizerSettings]; + } /** 4. Initialize the Scanning Coordinator object */ @@ -167,6 +178,7 @@ - (void)imagePickerController:(UIImagePickerController *)picker didFinishPicking if (CFStringCompare((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo) { UIImage *originalImage = (UIImage *)[info objectForKey: UIImagePickerControllerOriginalImage]; + // Process the selected image [self.coordinator processImage:originalImage scanningRegion:CGRectMake(0.0, 0.0, 1.0, 1.0) delegate:self]; @@ -193,7 +205,11 @@ - (void)scanningViewControllerDidClose:(UIViewController*)scanningViewController didOutputResults:(NSArray*)results { - // Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + /** + * Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + * Each member of results array will represent one result for a single processed image + * Usually there will be only one result. Multiple results are possible when there are 2 or more detected objects on a single image (i.e. pdf417 and QR code side by side) + */ // first, pause scanning until we process all the results [scanningViewController pauseScanning]; @@ -205,16 +221,30 @@ - (void)scanningViewController:(UIViewController*)scan for (PPRecognizerResult* result in results) { if ([result isKindOfClass:[PPMrtdRecognizerResult class]]) { + /** MRTD was detected */ PPMrtdRecognizerResult* mrtdResult = (PPMrtdRecognizerResult*)result; title = @"MRTD"; message = [mrtdResult description]; } if ([result isKindOfClass:[PPUsdlRecognizerResult class]]) { + /** USDL was detected */ PPUsdlRecognizerResult* usdlResult = (PPUsdlRecognizerResult*)result; title = @"USDL"; message = [usdlResult description]; } - }; + if ([result isKindOfClass:[PPEudlRecognizerResult class]]) { + /** EUDL was detected */ + PPEudlRecognizerResult* eudlResult = (PPEudlRecognizerResult*)result; + title = @"EUDL"; + message = [eudlResult description]; + } + if ([result isKindOfClass:[PPMyKadRecognizerResult class]]) { + /** MyKad was detected */ + PPMyKadRecognizerResult* myKadResult = (PPMyKadRecognizerResult*)result; + title = @"MyKad"; + message = [myKadResult description]; + } + } // present the alert view with scanned results UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:message delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; diff --git a/Samples/pdf417-sample-Swift/pdf417-sample-Swift/ViewController.swift b/Samples/pdf417-sample-Swift/pdf417-sample-Swift/ViewController.swift index cfc20f64..371342ec 100644 --- a/Samples/pdf417-sample-Swift/pdf417-sample-Swift/ViewController.swift +++ b/Samples/pdf417-sample-Swift/pdf417-sample-Swift/ViewController.swift @@ -10,13 +10,19 @@ import UIKit class ViewController: UIViewController, PPScanDelegate { - var rawOcrParserId: String = "Raw ocr" - var priceParserId: String = "Price" - override func viewDidLoad() { super.viewDidLoad() } + /** + * Method allocates and initializes the Scanning coordinator object. + * Coordinator is initialized with settings for scanning + * Modify this method to include only those recognizer settings you need. This will give you optimal performance + * + * @param error Error object, if scanning isn't supported + * + * @return initialized coordinator + */ private func coordinatorWithError(error: NSErrorPointer) -> PPCoordinator? { /** 0. Check if scanning is supported */ @@ -40,21 +46,32 @@ class ViewController: UIViewController, PPScanDelegate { /** * 3. Set up what is being scanned. See detailed guides for specific use cases. - * Here's an example for initializing PDF417 scanning + * Remove undesired recognizers (added below) for optimal performance. */ - // To specify we want to perform PDF417 recognition, initialize the PDF417 recognizer settings - let ocrRecognizerSettings: PPPdf417RecognizerSettings = PPPdf417RecognizerSettings() + // Remove this code if you don't need to scan Pdf417 + do { + // To specify we want to perform PDF417 recognition, initialize the PDF417 recognizer settings + let ocrRecognizerSettings: PPPdf417RecognizerSettings = PPPdf417RecognizerSettings() + + /** You can modify the properties of pdf417RecognizerSettings to suit your use-case */ - // Add PDF417 Recognizer setting to a list of used recognizer settings - settings.scanSettings.addRecognizerSettings(ocrRecognizerSettings) + // Add PDF417 Recognizer setting to a list of used recognizer settings + settings.scanSettings.addRecognizerSettings(ocrRecognizerSettings) + } - // To specify we want to perform recognition of other barcode formats, initialize the ZXing recognizer settings - let zxingRecognizerSettings: PPZXingRecognizerSettings = PPZXingRecognizerSettings() - zxingRecognizerSettings.scanQR=true // we use just QR code + // Remove this code if you don't need to scan QR codes + do { + // To specify we want to perform recognition of other barcode formats, initialize the ZXing recognizer settings + let zxingRecognizerSettings: PPZXingRecognizerSettings = PPZXingRecognizerSettings() - // Add ZXingRecognizer setting to a list of used recognizer settings - settings.scanSettings.addRecognizerSettings(zxingRecognizerSettings) + + /** You can modify the properties of zxingRecognizerSettings to suit your use-case (i.e. add other types of barcodes like QR, Aztec or EAN)*/ + zxingRecognizerSettings.scanQR=true // we use just QR code + + // Add ZXingRecognizer setting to a list of used recognizer settings + settings.scanSettings.addRecognizerSettings(zxingRecognizerSettings) + } /** 4. Initialize the Scanning Coordinator object */ @@ -77,10 +94,10 @@ class ViewController: UIViewController, PPScanDelegate { return } - /** Allocate and present the scanning view controller */ + /** Create new scanning view controller */ let scanningViewController: UIViewController = coordinator!.cameraViewControllerWithDelegate(self) - /** You can use other presentation methods as well */ + /** Present the scanning view controller. You can use other presentation methods as well (instead of presentViewController) */ self.presentViewController(scanningViewController, animated: true, completion: nil) } @@ -94,11 +111,12 @@ class ViewController: UIViewController, PPScanDelegate { return } - /** Present the scanning view controller */ + /** Init scanning view controller custom overlay */ let overlay: PPCameraOverlayViewController = PPCameraOverlayViewController(nibName: "PPCameraOverlayViewController",bundle: nil) + /** Create new scanning view controller with desired custom overlay */ let scanningViewController: UIViewController = coordinator!.cameraViewControllerWithDelegate(self,overlayViewController: overlay) - /** You can use other presentation methods as well */ + /** Present the scanning view controller. You can use other presentation methods as well (instead of presentViewController) */ self.presentViewController(scanningViewController, animated: true, completion: nil) } @@ -121,7 +139,11 @@ class ViewController: UIViewController, PPScanDelegate { let scanConroller: PPScanningViewController = scanningViewController as! PPScanningViewController - // Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + /** + * Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + * Each member of results array will represent one result for a single processed image + * Usually there will be only one result. Multiple results are possible when there are 2 or more detected objects on a single image (i.e. pdf417 and QR code side by side) + */ // first, pause scanning until we process all the results scanConroller.pauseScanning() @@ -132,16 +154,26 @@ class ViewController: UIViewController, PPScanDelegate { // Collect data from the result for result in results { + if(result.isKindOfClass(PPZXingRecognizerResult)) { + /** One of QR code was detected */ + + let zxingResult = result as! PPZXingRecognizerResult + + title = "QR code" + + // Save the string representation of the code + message = zxingResult.stringUsingGuessedEncoding() + } if(result.isKindOfClass(PPPdf417RecognizerResult)) { - let pdf417Result: PPPdf417RecognizerResult = result as! PPPdf417RecognizerResult + /** Pdf417 code was detected */ + + let pdf417Result = result as! PPPdf417RecognizerResult + title = "PDF417" + + // Save the string representation of the code message = pdf417Result.stringUsingGuessedEncoding() } - if(result.isKindOfClass(PPZXingRecognizerSettings)) { - let zxingResult: PPZXingRecognizerResult = result as! PPZXingRecognizerResult - title = "QR code" - message=zxingResult.stringUsingGuessedEncoding() - } } // present the alert view with scanned results let alertView: UIAlertView = UIAlertView.init(title: title, message: message, delegate: self, cancelButtonTitle: "OK") diff --git a/Samples/pdf417-sample/pdf417-sample/Camera Overlays/Simple/PPCameraOverlayViewController.m b/Samples/pdf417-sample/pdf417-sample/Camera Overlays/Simple/PPCameraOverlayViewController.m index cc1482e3..7bedf726 100644 --- a/Samples/pdf417-sample/pdf417-sample/Camera Overlays/Simple/PPCameraOverlayViewController.m +++ b/Samples/pdf417-sample/pdf417-sample/Camera Overlays/Simple/PPCameraOverlayViewController.m @@ -90,7 +90,7 @@ - (IBAction)torchPressed:(id)sender { #pragma mark - #pragma mark autorotation -- (NSUInteger)supportedInterfaceOrientations { +- (UIInterfaceOrientationMask)supportedInterfaceOrientations { return UIInterfaceOrientationMaskAllButUpsideDown; } @@ -119,15 +119,13 @@ - (void)cameraViewController:(id)cameraViewController NSLog(@"Barcode scanning process did output results %@", results); } -- (void)cameraViewController:(id)cameraViewController - didFindLocation:(NSArray *)cornerPoints - withStatus:(PPDetectionStatus)status { - +- (void)cameraViewController:(UIViewController *)cameraViewController didFinishDetectionWithResult:(PPDetectorResult *)result { + CGRect size = [[self view] bounds]; - + BOOL detectionSuccess = NO; - - switch (status) { + + switch (result.status) { case PPDetectionStatusSuccess: { NSLog(@"Detection was success"); detectionSuccess = YES; @@ -164,11 +162,12 @@ - (void)cameraViewController:(id)cameraViewController default: break; } - - if (detectionSuccess) { + + if (detectionSuccess && [result isKindOfClass:[PPQuadDetectorResult class]]) { CGMutablePathRef drawingPath = CGPathCreateMutable(); + PPQuadDetectorResult *quadResult = (PPQuadDetectorResult *)result; [PPCameraOverlayViewController createPath:drawingPath - withDots:cornerPoints + withDots:[quadResult.detectionLocation toPointsArray] forSize:size]; drawingLayer.path = drawingPath; [self startDotAnimation:[[UIColor greenColor] CGColor]]; diff --git a/Samples/pdf417-sample/pdf417-sample/ViewController.m b/Samples/pdf417-sample/pdf417-sample/ViewController.m index aea2c4b2..fe0f9cd7 100644 --- a/Samples/pdf417-sample/pdf417-sample/ViewController.m +++ b/Samples/pdf417-sample/pdf417-sample/ViewController.m @@ -31,6 +31,7 @@ - (void)didReceiveMemoryWarning { /** * Method allocates and initializes the Scanning coordinator object. * Coordinator is initialized with settings for scanning + * Modify this method to include only those recognizer settings you need. This will give you optimal performance * * @param error Error object, if scanning isn't supported * @@ -59,23 +60,33 @@ - (PPCoordinator *)coordinatorWithError:(NSError**)error { /** * 3. Set up what is being scanned. See detailed guides for specific use cases. - * Here's an example for initializing PDF417 scanning + * Remove undesired recognizers (added below) for optimal performance. */ - // To specify we want to perform PDF417 recognition, initialize the PDF417 recognizer settings - PPPdf417RecognizerSettings *pdf417RecognizerSettings = [[PPPdf417RecognizerSettings alloc] init]; - // Add PDF417 Recognizer setting to a list of used recognizer settings - [settings.scanSettings addRecognizerSettings:pdf417RecognizerSettings]; + // Remove this code if you don't need to scan Pdf417 + { + // To specify we want to perform PDF417 recognition, initialize the PDF417 recognizer settings + PPPdf417RecognizerSettings *pdf417RecognizerSettings = [[PPPdf417RecognizerSettings alloc] init]; - // To specify we want to perform recognition of other barcode formats, initialize the ZXing recognizer settings - PPZXingRecognizerSettings *zxingRecognizerSettings = [[PPZXingRecognizerSettings alloc] init]; - zxingRecognizerSettings.scanQR = YES; // we use just QR code + /** You can modify the properties of pdf417RecognizerSettings to suit your use-case */ - // Add ZXingRecognizer setting to a list of used recognizer settings - [settings.scanSettings addRecognizerSettings:zxingRecognizerSettings]; + // Add PDF417 Recognizer setting to a list of used recognizer settings + [settings.scanSettings addRecognizerSettings:pdf417RecognizerSettings]; + } + + // Remove this code if you don't need to scan QR codes + { + // To specify we want to perform recognition of other barcode formats, initialize the ZXing recognizer settings + PPZXingRecognizerSettings *zxingRecognizerSettings = [[PPZXingRecognizerSettings alloc] init]; - /** 4. Initialize the Scanning Coordinator object */ + /** You can modify the properties of zxingRecognizerSettings to suit your use-case (i.e. add other types of barcodes like QR, Aztec or EAN)*/ + zxingRecognizerSettings.scanQR = YES; // we use just QR code + + + // Add ZXingRecognizer setting to a list of used recognizer settings + [settings.scanSettings addRecognizerSettings:zxingRecognizerSettings]; + } PPCoordinator *coordinator = [[PPCoordinator alloc] initWithSettings:settings]; @@ -100,10 +111,14 @@ - (IBAction)didTapScan:(id)sender { return; } - /** Allocate and present the scanning view controller */ + /** Create new scanning view controller */ UIViewController* scanningViewController = [coordinator cameraViewControllerWithDelegate:self]; - /** You can use other presentation methods as well */ + // Allow scanning view controller to autorotate + scanningViewController.autorotate = YES; + scanningViewController.supportedOrientations = UIInterfaceOrientationMaskAllButUpsideDown; + + /** Present the scanning view controller. You can use other presentation methods as well (instead of presentViewController) */ [self presentViewController:scanningViewController animated:YES completion:nil]; } @@ -127,8 +142,10 @@ - (IBAction)didTapScanCustomUI:(id)sender { /** Present the scanning view controller */ + /** Init scanning view controller custom overlay */ PPCameraOverlayViewController *overlayVC = [[PPCameraOverlayViewController alloc] init]; + /** Create new scanning view controller with desired custom overlay */ UIViewController* scanningViewController = [coordinator cameraViewControllerWithDelegate:self overlayViewController:overlayVC]; @@ -154,6 +171,12 @@ - (void)scanningViewControllerDidClose:(UIViewController *)scanningViewController didOutputResults:(NSArray *)results { + /** + * Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. + * Each member of results array will represent one result for a single processed image + * Usually there will be only one result. Multiple results are possible when there are 2 or more detected objects on a single image (i.e. pdf417 and QR code side by side) + */ + // Here you process scanning results. Scanning results are given in the array of PPRecognizerResult objects. // first, pause scanning until we process all the results @@ -164,19 +187,27 @@ - (void)scanningViewController:(UIViewController *)sca // Collect data from the result for (PPRecognizerResult* result in results) { - - if ([result isKindOfClass:[PPPdf417RecognizerResult class]]) { - PPPdf417RecognizerResult *pdf417Result = (PPPdf417RecognizerResult *)result; - title = @"PDF417"; - message = [pdf417Result stringUsingGuessedEncoding]; - } if ([result isKindOfClass:[PPZXingRecognizerResult class]]) { + /** One of ZXing codes was detected */ + PPZXingRecognizerResult *zxingResult = (PPZXingRecognizerResult *)result; + title = @"QR code"; + + // Save the string representation of the code message = [zxingResult stringUsingGuessedEncoding]; } + if ([result isKindOfClass:[PPPdf417RecognizerResult class]]) { + /** Pdf417 code was detected */ - }; + PPPdf417RecognizerResult *pdf417Result = (PPPdf417RecognizerResult *)result; + + title = @"PDF417"; + + // Save the string representation of the code + message = [pdf417Result stringUsingGuessedEncoding]; + } + } // present the alert view with scanned results UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:message delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; diff --git a/Transition guide.md b/Transition guide.md index a1f5779f..6ac926b4 100644 --- a/Transition guide.md +++ b/Transition guide.md @@ -1,10 +1,29 @@ +## 1.4.0 + +- If you implement custom camera UI and handle `cameraViewController:didFindLocation:withStatus`, this method was changed to `cameraViewController:didFinishDetectionWithResult:`. `PPDetectorResult` object now contains all information previosusly passed to this method. Simply update the code to use the new method signature. Verify the exact type of the passed detectorResult object, cast it to this class, and use provided getters to obtain all information. + +- PPOverlayViewController changed the way Overlay Subviews are added to the view hierarchy. Instead of calling `addOverlaySubview:` (which automatically added a view to view hierarachy), you now need to call `registerOverlaySubview:` (which registers subview for scanning events), and manually add subview to view hierarchy using `addSubview:` method. This change gives you more flexibility for adding views and managing autolayout and autoresizing masks. So, replace all calls to (assuming self is a `PPOverlayViewController` instance) + +```objective-c +[self addOverlaySubview:subview]; +``` + +with +```objective-c +[self registerOverlaySubview:subview]; +[self.view addSubview:subview]; +``` +- If you use DetectorRecognizer, designated initializer of `PPDocumentDecodingInfoEntry` objects changed. Instead of `initWithLocation:dewarpedHeight:` use `initWithLocation:dewarpedHeight:uniqueId:`. As Unique ID pass any unique string which you'll use to identify the decoding info object. + +- Localization Macros MB_LOCALIZED and MB_LOCALIZED_FORMAT can now be overriden in your app to provide completely custom localization mechanisms. + ## 1.3.0 - Remove the old .embeddedframework package completely from your project - Add new .framework and .bundle package to your project. Verify that Framework search path really contains a path to the .framework folder. -- replace all occurrences of `PPCoordinator`'s method `isScanningUnsupported:` to `isScanningUnsupportedForCameraType:error:`. If you use Back facing camera, use `PPCameraTypeBack`, otherwise `PPCameraTypeBack`. +- replace all occurrences of `PPCoordinator`'s method `isScanningUnsupported:` to `isScanningUnsupportedForCameraType:error:`. If you use Back facing camera, use `PPCameraTypeBack`, otherwise `PPCameraTypeFront`. - Rename `PPMetadataSettings` properties - `successfulScanFrame` rename to `successfulFrame` diff --git a/buildCommit.txt b/buildCommit.txt index 95899dc5..70da2d70 100644 --- a/buildCommit.txt +++ b/buildCommit.txt @@ -1 +1 @@ -Built from core repository commit 0e121fd6096a88301747a1878eda7f9af3c5f488 +Built from core repository commit bcfd2d3c37e538f1110d9b251f0e779bfb00060e diff --git a/travis/before_script.sh b/travis/before_script.sh index a264dd3d..fb3bd7b4 100755 --- a/travis/before_script.sh +++ b/travis/before_script.sh @@ -4,4 +4,9 @@ set -e brew update brew unlink xctool brew install xctool -brew link --overwrite xctool \ No newline at end of file +brew link --overwrite xctool + +brew install git-lfs + +git lfs install +git lfs pull \ No newline at end of file diff --git a/travis/script.sh b/travis/script.sh index 508b5c33..57f98633 100755 --- a/travis/script.sh +++ b/travis/script.sh @@ -1,6 +1,20 @@ #!/bin/sh set -e +xctool -project Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj \ + -scheme BlinkOCR-sample \ + -configuration Debug \ + -sdk iphonesimulator \ + ONLY_ACTIVE_ARCH=NO \ + clean build + +xctool -project Samples/BlinkOCR-sample/BlinkOCR-sample.xcodeproj \ + -scheme BlinkOCR-sample \ + -configuration Release \ + -sdk iphonesimulator \ + ONLY_ACTIVE_ARCH=NO \ + clean build + xctool -project Samples/BlinkID-sample/BlinkID-sample.xcodeproj \ -scheme BlinkID-sample \ -configuration Debug \