Skip to content

Commit c1ce707

Browse files
author
Kendall Kelly
authored
refactor: changed idscan filter settings (#32)
* refactor: changed idscan filter settings * refactor: cleaned up code
1 parent 02f819a commit c1ce707

File tree

3 files changed

+52
-10
lines changed

3 files changed

+52
-10
lines changed

example/ios/Podfile.lock

+5-5
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ PODS:
218218
- React-jsinspector (0.68.0)
219219
- React-logger (0.68.0):
220220
- glog
221-
- react-native-idscan-sdk (0.1.0):
221+
- react-native-idscan-sdk (0.3.0):
222222
- React-Core
223223
- React-perflogger (0.68.0)
224224
- React-RCTActionSheet (0.68.0):
@@ -395,11 +395,11 @@ EXTERNAL SOURCES:
395395

396396
SPEC CHECKSUMS:
397397
boost: a7c83b31436843459a1961bfd74b96033dc77234
398-
DoubleConversion: cde416483dac037923206447da6e1454df403714
398+
DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
399399
FBLazyVector: d2fd875e2b24bbc350722df0df9d383cb891b9f2
400400
FBReactNativeSpec: 7493e074a31512df3253160059295264a84b8149
401401
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
402-
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
402+
glog: 476ee3e89abb49e07f822b48323c51c57124b572
403403
RCT-Folly: 4d8508a426467c48885f1151029bc15fa5d7b3b8
404404
RCTRequired: bab4a7c3d7eb9553b13773ee190f279712efd1fc
405405
RCTTypeSafety: efbeb6e450ff6cef8e19c2cb5314c6d8bfeeef77
@@ -413,7 +413,7 @@ SPEC CHECKSUMS:
413413
React-jsiexecutor: 010a66edf644339f6da72b34208b070089680415
414414
React-jsinspector: 90f0bfd5d04e0b066c29216a110ffb9a6c34f23f
415415
React-logger: 8474fefa09d05f573a13c044cb0dfd751d4e52e3
416-
react-native-idscan-sdk: 85ace0be9b3d64408fcbbbba4768cde37fa222df
416+
react-native-idscan-sdk: 4d45217bc535faf7c411e6247b1eb8a6507c1310
417417
React-perflogger: 15cb741d6c2379f4d3fc8f9e4d4e1110ef3020cb
418418
React-RCTActionSheet: ea9099db0597bd769430db1e2d011fd5fdb7fc5e
419419
React-RCTAnimation: 252df4749866f2654f37612f839522cac91c1165
@@ -430,4 +430,4 @@ SPEC CHECKSUMS:
430430

431431
PODFILE CHECKSUM: ab59e48bef4677d9d279df353a73581b0f9df2cd
432432

433-
COCOAPODS: 1.11.2
433+
COCOAPODS: 1.11.3

example/metro.config.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const path = require('path');
2-
const blacklist = require('metro-config/src/defaults/blacklist');
2+
const exclusionList = require('metro-config/src/defaults/exclusionList');
33
const escape = require('escape-string-regexp');
44
const pak = require('../package.json');
55

@@ -16,7 +16,7 @@ module.exports = {
1616
// We need to make sure that only one version is loaded for peerDependencies
1717
// So we blacklist them at the root, and alias them to the versions in example's node_modules
1818
resolver: {
19-
blacklistRE: blacklist(
19+
blockList: exclusionList(
2020
modules.map(
2121
(m) =>
2222
new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`)

ios/ScannerViewController.m

+45-3
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ - (void)initCapture
9595
self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
9696

9797
if (@available(iOS 13.0, *)) {
98-
AVCaptureDeviceDiscoverySession *captureDeviceDiscoverySession = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInUltraWideCamera]
98+
AVCaptureDeviceDiscoverySession *captureDeviceDiscoverySession = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera]
9999
mediaType:AVMediaTypeVideo
100100
position:AVCaptureDevicePositionBack];
101101

@@ -226,6 +226,9 @@ - (void) onVideoStart: (NSNotification*) note
226226
if ([self.device lockForConfiguration: &error]) {
227227
if ([self.device isFocusModeSupported: AVCaptureFocusModeContinuousAutoFocus])
228228
self.device.focusMode = AVCaptureFocusModeContinuousAutoFocus;
229+
230+
if ([self.device isExposureModeSupported: AVCaptureExposureModeContinuousAutoExposure])
231+
self.device.exposureMode = AVCaptureExposureModeContinuousAutoExposure;
229232
}
230233
}
231234

@@ -254,7 +257,7 @@ - (void)captureOutput:(AVCaptureOutput *)captureOutput
254257
}
255258

256259
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
257-
CIImage *ciImage = [CIImage imageWithCVPixelBuffer:imageBuffer];
260+
CIImage *ciImage = [self adjust:[CIImage imageWithCVPixelBuffer:imageBuffer] saturation:1.0 shadow:0.3 contrast:1.2 brightness:0.0 sharpnessLuminance:2.0];
258261

259262
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
260263
NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
@@ -266,7 +269,6 @@ - (void)captureOutput:(AVCaptureOutput *)captureOutput
266269
IDScanMRZDetector *mrzDetector = [IDScanMRZDetector detectorWithActivationKey: [settings objectForKey:@"scannerMRZKey"]];
267270

268271
NSString *result = @"";
269-
270272
// detect based on scanner Type
271273
if ([scannerType isEqualToString:@"pdf"]) {
272274
result = [pdfDetector detectFromImage:ciImage][@"string"];
@@ -303,6 +305,46 @@ - (void)captureOutput:(AVCaptureOutput *)captureOutput
303305
});
304306
}
305307

308+
- (CIImage *)adjust:(CIImage *)ciImage
309+
saturation:(float)saturation
310+
shadow:(float)shadow
311+
contrast:(float)contrast
312+
brightness:(float)brightness
313+
sharpnessLuminance:(float)sharpnessLuminance
314+
{
315+
// saturation
316+
CIFilter *filter = [CIFilter filterWithName:@"CIColorControls"];
317+
[filter setValue:ciImage forKey:kCIInputImageKey];
318+
[filter setValue:[NSNumber numberWithFloat: saturation] forKey:kCIInputSaturationKey];
319+
ciImage = [filter valueForKey:kCIOutputImageKey];
320+
321+
// shadow
322+
CIFilter *shadowFilter = [CIFilter filterWithName:@"CIHighlightShadowAdjust"];
323+
[shadowFilter setValue:ciImage forKey:kCIInputImageKey];
324+
[shadowFilter setValue:[NSNumber numberWithFloat: shadow] forKey:@"inputShadowAmount"];
325+
ciImage = [shadowFilter valueForKey:kCIOutputImageKey];
326+
327+
// contrast
328+
CIFilter *contrastFilter = [CIFilter filterWithName:@"CIColorControls"];
329+
[contrastFilter setValue:ciImage forKey:kCIInputImageKey];
330+
[contrastFilter setValue:[NSNumber numberWithFloat: contrast] forKey:kCIInputContrastKey];
331+
ciImage = [contrastFilter valueForKey:kCIOutputImageKey];
332+
333+
// brightness
334+
CIFilter *brightnessFilter = [CIFilter filterWithName:@"CIColorControls"];
335+
[brightnessFilter setValue:ciImage forKey:kCIInputImageKey];
336+
[brightnessFilter setValue:[NSNumber numberWithFloat: brightness] forKey:kCIInputBrightnessKey];
337+
ciImage = [brightnessFilter valueForKey:kCIOutputImageKey];
338+
339+
// sharpnessLuminance
340+
CIFilter *sharpnessLuminanceFilter = [CIFilter filterWithName:@"CISharpenLuminance"];
341+
[sharpnessLuminanceFilter setValue:ciImage forKey:kCIInputImageKey];
342+
[sharpnessLuminanceFilter setValue:[NSNumber numberWithFloat: sharpnessLuminance] forKey:kCIInputSharpnessKey];
343+
ciImage = [sharpnessLuminanceFilter valueForKey:kCIOutputImageKey];
344+
345+
return ciImage;
346+
}
347+
306348
#pragma mark -
307349
#pragma mark Memory management
308350

0 commit comments

Comments
 (0)