Methods
(static) create(options, successCallBack, errorCallBack)
Creates selfie capture control based on given options.
You can check your device supports selfie capture or not by using supportsSelfieCapture method.
If your device supports selfie capture then you should invoke loadModels method ahead of calling
this method otherwise it will return an error.
Parameters:
Name |
Type |
Description |
options |
Object
|
The options.
Properties
Name |
Type |
Attributes |
Default |
Description |
containerId |
String
|
|
|
ID of an empty element where the selfie camera preview and selfie capture guidance will be displayed.
The element must exist, have no child elements, and be a div.
Application developer has to properly set size & position of the container.
ContainerId will not be required, if browser doesn't support MediaStreamAPI. |
videoStream |
Boolean
|
|
|
Boolean value representing either capture with camera option or auto capture with guidance messages. Check KfxWebSDK.Utilities.supportsSelfieCapture API before enabling this option. If the API returns true then only we can enable this option otherwise we will get an error. |
preview |
Boolean
|
<optional>
|
false
|
Boolean value representing whether to review the captured selfie using the SDK review control. |
frameAspectRatio |
Number
|
<optional>
|
0
|
Aspect ratio of the frame. |
framePadding |
Number
|
<optional>
|
10
|
Frame padding. |
frameThickness |
Number
|
<optional>
|
10
|
Frame thickness. |
frameColor |
String
|
<optional>
|
'#FF0000'
|
Frame color. |
outOfFrameTransparency |
Number
|
<optional>
|
1.0
|
Out of frame space transparency, 0 - transparent and visible, 1 - dark. |
outOfFrameColor |
String
|
<optional>
|
'#FFFFFF'
|
Out of frame color. |
showEdges |
Boolean
|
<optional>
|
true
|
Draws a border around the face during capture. |
edgesColor |
String
|
<optional>
|
'#FFFF00'
|
Bounding rectangle sides color. |
edgesWidth |
Number
|
<optional>
|
4
|
Bounding rectangle sides width. |
guidanceSize |
Number
|
<optional>
|
150
|
Size of guidance circle image. |
guidanceTransparency |
Number
|
<optional>
|
0.5
|
Guidance message transparency, 0 - transparent and visible, 1 - dark. |
enableAutoCapture |
Boolean
|
<optional>
|
true
|
Used to enable the Auto Capture. When this option is enabled, user will get Blink Slowly instruction.
Once the blink is detected then auto capture will happen.
When this option is disabled, user has to tap on capture experience to capture selfie. |
enableBlinkDetection |
Boolean
|
<optional>
|
true
|
Used to enable the Blink Detection. When this option is enabled, user will get Blink Slowly instruction.
Once the blink is detected then auto capture will happen.
When this option is disabled, liveliness is not verified. Auto capture will happen once the face is detected.
This option is applicable only when enableAutoCapture option is enabled. If enableAutoCapture is disabled then there will be no effect of this setting. |
criteria |
Object
|
|
|
The criteria options.
Properties
Name |
Type |
Attributes |
Default |
Description |
captureTimeout |
Number
|
<optional>
|
1700
|
The amount of time the user must hold the device steady once the 'Hold Steady' guidance appears,
after which point an image is captured. If any other guidance prompt appears during this time,
no image is captured until the 'Hold Steady' guidance appears again and the device remains held steady.
The duration value is in milliseconds. |
centerToleranceFraction |
Number
|
<optional>
|
0.15
|
The maximum distance the face can be shifted from the target frame.
The movement tolerance puts an upper bound on how far a face can be shifted from the target frame
and still be considered acceptable. The tolerance is specified as a fraction of the target size,
and the comparison is made between the center of the target frame and the center of the detected face bounds. |
minFaceSize |
Number
|
<optional>
|
0.50
|
Number value in percentage specifies the percentage of face fits with in the target frame.
Valid values are in the range [0, 1]. The default value is 0.5.
If number value is negative then it will take detault value.
If value is > 0.7 then there will be a difficulty in capturing selfie.
If auto capture is disabled then this criteria won't applicable. |
|
lookAndFeel |
Object
|
|
|
The look and feel options.
Properties
Name |
Type |
Attributes |
Default |
Description |
forceCapture |
Boolean
|
Number
|
<optional>
|
10
|
Boolean value specifies whether to show the force capture button.
Number value in seconds specifies when to show the force capture button.
If any number is set, then the button will be shown.
If number value is negative or zero the button will be shown immediately.
Setting boolean true is equivalent to setting number 0 value.
If auto capture is disabled then Force capture button won't be displayed. |
|
|
successCallBack |
function
|
empty callback indicating API call is successful |
errorCallBack |
function
|
callback with error message to be invoked when something goes wrong |
- See:
-
Example
var options = {
containerId: 'divId',
videoStream: true,
preview: false,
frameAspectRatio: 0,
framePadding: 10,
frameThickness: 10,
frameColor: '#FF0000',
outOfFrameColor: '#FFFFFF',
outOfFrameTransparency: 1.0,
guidanceTransparency: 0.5,
enableAutoCapture: true,
enableBlinkDetection: true,
guidanceSize: 150,
showEdges: false,
edgesColor: '#FFFF00',
edgesWidth: 4,
criteria: {
minFaceSize: 0.50,
captureTimeout: 1700,
centerToleranceFraction: 0.15
},
lookAndFeel: {
forceCapture: 10
}
};
(static) destroy(successCallBack, errorCallBack)
Releases internal allocated resources
The destroy method must be called prior to calling create multiple times.
Parameters:
Name |
Type |
Description |
successCallBack |
function
|
callback with no data |
errorCallBack |
function
|
callback with error message to be invoked when something goes wrong |
(static) forceTakeSelfie(successCallBack, errorCallBack)
When auto capture is disabled, this API won't work as expected.
When auto capture is enabled, this API is used to capture document by ignoring capture criteria.
Parameters:
Name |
Type |
Description |
successCallBack |
function
|
This function returns captured selfie ImageData as parameter. |
errorCallBack |
function
|
callback with error message to be invoked when something goes wrong |
(static) getDefaultOptions(successCallBack, errorCallBack)
Returns default selfie capture control options.
Parameters:
Name |
Type |
Description |
successCallBack |
function
|
callback with JSON object representing default selfie capture control options |
errorCallBack |
function
|
callback with error message to be invoked when something goes wrong |
(static) getOptions(successCallBack, errorCallBack)
Returns current selfie capture control options.
Parameters:
Name |
Type |
Description |
successCallBack |
function
|
callback with JSON object representing selfie capture control options |
errorCallBack |
function
|
callback with error message to be invoked when something goes wrong |
(static) loadModels(loadOpenCVAsWebAssemblyopt, successCallBack, errorCallBack)
This method loads the required model files for opencv to detect face and eyes respectively.
In our case, we are using haarcascade_eye and lbpcascade_frontalface xmls.
One should invoke this method ahead of launching selfie capture
Parameters:
Name |
Type |
Attributes |
Default |
Description |
loadOpenCVAsWebAssembly |
Boolean
|
<optional>
|
false
|
OpenCV can be used in 2 ways to load selfie models. 1) Use OpenCV as JavaScript 2) Use OpenCV as WebAssembly.
By default, OpenCV will be loaded as JavaScript. User can set ‘loadOpenCVAsWebAssembly’ as true to use OpenCV as WebAssembly.
By using WebAssembly, user can experience better performance because code can be executed at near-native speed across different
platforms by taking advantage of common hardware capabilities. To use OpenCV as WebAssembly, you have to add "application/wasm"
MIME Type in your web server where you are going to host your app. |
successCallBack |
function
|
|
|
callback with no data |
errorCallBack |
function
|
|
|
callback with error message to be invoked when something goes wrong |
(static) setOptions(options, successCallBack, errorCallBack)
Sets selfie capture control options.
Parameters:
Name |
Type |
Description |
options |
Object
|
The options.
Properties
Name |
Type |
Attributes |
Default |
Description |
frameAspectRatio |
Number
|
<optional>
|
0
|
Aspect ratio of the frame. |
framePadding |
Number
|
<optional>
|
10
|
Frame padding. The padding has priority over frame corners, i.e. if padding zero value is set,
then there is no space for frame corners left and they will not be shown. |
frameThickness |
Number
|
<optional>
|
10
|
Frame thickness. |
frameColor |
String
|
<optional>
|
'#FF0000'
|
Frame color. |
outOfFrameTransparency |
Number
|
<optional>
|
1.0
|
Out of frame space transparency, 0 - transparent and visible, 1 - dark. |
outOfFrameColor |
String
|
<optional>
|
'#FFFFFF'
|
Out of frame color. |
showEdges |
Boolean
|
<optional>
|
true
|
Draws a border around the face during capture. |
edgesColor |
String
|
<optional>
|
'#FFFF00'
|
Bounding rectangle sides color. |
edgesWidth |
Number
|
<optional>
|
4
|
Bounding rectangle sides width. |
guidanceSize |
Number
|
<optional>
|
150
|
Size of guidance circle image. |
guidanceTransparency |
Number
|
<optional>
|
0.5
|
Guidance message transparency, 0 - transparent and visible, 1 - dark. |
enableAutoCapture |
Boolean
|
<optional>
|
true
|
Used to enable the Auto Capture. When this option is enabled, user will get Blink Slowly instruction.
Once the blink is detected then auto capture will happen.
When this option is disabled, user has to tap on capture experience to capture selfie. |
enableBlinkDetection |
Boolean
|
<optional>
|
true
|
Used to enable the Blink Detection. When this option is enabled, user will get Blink Slowly instruction.
Once the blink is detected then auto capture will happen.
When this option is disabled, liveliness is not verified. Auto capture will happen once the face is detected.
This option is applicable only when enableAutoCapture option is enabled. If enableAutoCapture is disabled then there will be no effect of this setting. |
criteria |
Object
|
|
|
The criteria options.
Properties
Name |
Type |
Attributes |
Default |
Description |
captureTimeout |
Number
|
<optional>
|
1700
|
The amount of time the user must hold the device steady once the 'Hold Steady' guidance appears,
after which point an image is captured. If any other guidance prompt appears during this time,
no image is captured until the 'Hold Steady' guidance appears again and the device remains held steady.
The duration value is in milliseconds. |
centerToleranceFraction |
Number
|
<optional>
|
0.15
|
The maximum distance the face can be shifted from the target frame.
The movement tolerance puts an upper bound on how far a face can be shifted from the target frame
and still be considered acceptable. The tolerance is specified as a fraction of the target size,
and the comparison is made between the center of the target frame and the center of the detected face bounds. |
minFaceSize |
Number
|
<optional>
|
0.50
|
Number value in percentage specifies the percentage of face fits with in the target frame
Valid values are in the range [0, 1]. The default value is 0.5.
If number value is negative then it will take detault value. |
|
lookAndFeel |
Object
|
|
|
The look and feel options.
Properties
Name |
Type |
Attributes |
Default |
Description |
forceCapture |
Boolean
|
Number
|
<optional>
|
10
|
Boolean value specifies whether to show the force capture button.
Number value in seconds specifies when to show the force capture button.
If any number is set, then the button will be shown.
If number value is negative or zero the button will be shown immediately.
Setting boolean true is equivalent to setting number 0 value.
If auto capture is disabled then Force capture button won't be displayed. |
|
|
successCallBack |
function
|
empty callback indicating API call is successful |
errorCallBack |
function
|
callback with error message to be invoked when something goes wrong |
Example
var options = {
containerId: 'divId',
videoStream: true,
preview: false,
frameAspectRatio: 0,
framePadding: 10,
frameThickness: 10,
frameColor: '#FF0000',
outOfFrameColor: '#FFFFFF',
outOfFrameTransparency: 1.0,
guidanceTransparency: 0.5,
enableAutoCapture: true,
enableBlinkDetection: true,
guidanceSize: 150,
showEdges: false,
edgesColor: '#FFFF00',
edgesWidth: 4,
criteria: {
minFaceSize: 0.50,
captureTimeout: 1700,
centerToleranceFraction: 0.15
},
lookAndFeel: {
forceCapture: 10
}
};
(static) stopCapture(successCallBack, errorCallBack)
Stops Auto capture.
Parameters:
Name |
Type |
Description |
successCallBack |
function
|
callback with no data |
errorCallBack |
function
|
callback with error message to be invoked when something goes wrong |
(static) takeSelfie(successCallBack, errorCallBack)
Starts Auto capture process.
Parameters:
Name |
Type |
Description |
successCallBack |
function
|
When auto capture is enabled, this function returns captured selfie ImageData as parameter. When auto capture is disabled, this function returns close selfie ImageData and far selfie ImageData as parameters. When auto capture is disabled, to check the liveliness we have to send the close selfie and far selfie images to the server. |
errorCallBack |
function
|
callback with error message to be invoked when something goes wrong |
- See:
-
- It is recommended to call/bind this method in some button click events instead of jquery page events or window load events to get full support from most of the browsers.