ScanQRcode

所属分类:图形图象
开发工具:Objective-C
文件大小:8413KB
下载次数:0
上传日期:2019-11-18 02:11:41
上 传 者sh-1993
说明:  功能描述:WSLNativeScanTool是在利用原生API的条件下封装的二维码扫描工具,支持二维码的扫描、识别图中二维码、生成自定义颜色和中心图标的二维码、监测环境亮度、打开闪光灯这些功能;WSLScanView是参照微信封装的一...
(Function description: WSLNationalScanTool is a 2D code scanning tool packaged under the condition of using native APIs. It supports functions such as scanning QR codes, identifying QR codes in images, generating custom color and center icon QR codes, monitoring environmental brightness, and turning on flash; WSLScanView is a reference to WeChat encapsulation)

文件列表:
2018-03-02 15_03_28.gif (4023602, 2019-11-18)
2018-03-02 15_03_56.gif (4461411, 2019-11-18)
LICENSE (1066, 2019-11-18)
ScanQRcodeDemo (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\project.pbxproj (25876, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\project.xcworkspace (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\project.xcworkspace\contents.xcworkspacedata (155, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\project.xcworkspace\xcshareddata (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\project.xcworkspace\xcshareddata\IDEWorkspaceChecks.plist (238, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\project.xcworkspace\xcuserdata (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\project.xcworkspace\xcuserdata\wangshuanglong.xcuserdatad (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\project.xcworkspace\xcuserdata\wangshuanglong.xcuserdatad\UserInterfaceState.xcuserstate (46783, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\xcuserdata (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\xcuserdata\wangshuanglong.xcuserdatad (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\xcuserdata\wangshuanglong.xcuserdatad\xcdebugger (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\xcuserdata\wangshuanglong.xcuserdatad\xcdebugger\Breakpoints_v2.xcbkptlist (473, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\xcuserdata\wangshuanglong.xcuserdatad\xcschemes (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode.xcodeproj\xcuserdata\wangshuanglong.xcuserdatad\xcschemes\xcschememanagement.plist (445, 2019-11-18)
ScanQRcodeDemo\ScanQRcode (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\AppDelegate.h (282, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\AppDelegate.m (2044, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\Assets.xcassets (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\Assets.xcassets\AppIcon.appiconset (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\Assets.xcassets\AppIcon.appiconset\Contents.json (1495, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\Base.lproj (0, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\Base.lproj\LaunchScreen.storyboard (1844, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\Base.lproj\Main.storyboard (7108, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\Info.plist (1668, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\ViewController.h (248, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\ViewController.m (7490, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\WSLCreateQRCodeController.h (339, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\WSLCreateQRCodeController.m (1373, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\WSLNativeScanTool.h (1903, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\WSLNativeScanTool.m (9711, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\WSLScanView.h (1907, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\WSLScanView.m (11909, 2019-11-18)
ScanQRcodeDemo\ScanQRcode\main.m (339, 2019-11-18)
... ...

# WSLNativeScanTool °https://www.jianshu.com/u/e15d1f***4bea ![](https://img.shields.io/badge/license-MIT%20-green.svg) ![](https://img.shields.io/badge/pod-v1.0-brightgreen.svg) ![](https://img.shields.io/badge/platform-iOS-orange.svg) ![](https://img.shields.io/badge/support-iOS9.0-green.svg) ![](https://img.shields.io/badge/build-passing-green.svg) ![éè§1.gif](http://upload-images.jianshu.io/upload_images/1708447-6f8d911290ccafb4.gif?imageMogr2/auto-orient/strip) ![éè§2.gif](http://upload-images.jianshu.io/upload_images/1708447-70b61f5542fc07a1.gif?imageMogr2/auto-orient/strip) >èè°:[WSLNativeScanTool](https://github.com/wslcmk/ScanQRcode.git)¨”¨”API°è…‰·…·”‰è”è‰é艒‘‰“é—…‰èè[WSLScanView](https://github.com/wslcmk/ScanQRcode.git)…§°è…‰‰é”é艤§°¨”‰‰·è‰è¤è°±…§‰‰è° * è°°±¨¤”¨§¨éè‘’[WSLNativeScanTool](https://github.com/wslcmk/ScanQRcode.git) * WSLNativeScanTool.h ”¨— ``` @import UIKit; @import AVFoundation; #import /** ‰è° @param scanString ‰— */ typedef void(^WSLScanFinishedBlock)( NSString * _Nullable scanString); /** ‘…‰è° @param brightness */ typedef void(^WSLMonitorLightBlock)( float brightness); @interface WSLNativeScanTool : NSObject /** ‰“è° ¨”¨é—é */ @property (nonatomic, copy) WSLScanFinishedBlock _Nullable scanFinishedBlock; /** ‘…‰è°, != nil 訤‘è */ @property (nonatomic, copy) WSLMonitorLightBlock _Nullable monitorLightBlock; /** é—…‰,éèè…¤–褖”¨ */ @property (nonatomic, assign) BOOL flashOpen; /** §– ‰·…· @param preview ±¤è“è§ @param scanFrame ‰èè */ - (instancetype )initWithPreview:(UIView *)preview andScanFrame:(CGRect)scanFrame; /** é—…‰… */ - (void)openFlashSwitch:(BOOL)open; - (void)sessionStartRunning; - (void)sessionStopRunning; /** è */ - (void)scanImageQRCode:(UIImage *_Nullable)imageCode; /** ”艷 ¨‰é艓”è @param codeString — @param size ¤§° @param backColor èè‰ @param frontColor ‰è‰ @param centerImage ‰ @return image */ + (UIImage *)createQRCodeImageWithString:(nonnull NSString *)codeString andSize:(CGSize)size andBackColor:(nullable UIColor *)backColor andFrontColor:(nullable UIColor *)frontColor andCenterImage:(nullable UIImage *)centerImage; ``` * WSLScanView.h,”¨— ``` // // WSLScanView.h // ScanQRcode // // Created by é on 2018/2/28. // Copyright 2018 https://www.jianshu.com/u/e15d1f***4bea All rights reserved. // #import typedef void(^WSLMyQRCodeBlock)(void); typedef void(^WSLFlashSwitchBlock)(BOOL open); @interface WSLScanView : UIView /** ‘è° */ @property (nonatomic,copy) WSLMyQRCodeBlock myQRCodeBlock; /** ‰“/…é—é—…‰è° */ @property (nonatomic,copy) WSLFlashSwitchBlock flashSwitchBlock; #pragma mark - ‰ /** ‰ é褖,x = 60, y = 100 */ @property (nonatomic,assign)CGRect scanRetangleRect; /** @brief éè‰éè¤YES */ @property (nonatomic, assign) BOOL isNeedShowRetangle; /** @brief éè‰ */ @property (nonatomic, strong, nullable) UIColor *colorRetangleLine; #pragma mark - (‰)‘¨4角 //4角éè‰ @property (nonatomic, strong, nullable) UIColor* colorAngle; //‰4角’é éè¤é20 @property (nonatomic, assign) CGFloat photoframeAngleW; @property (nonatomic, assign) CGFloat photoframeAngleH; /** @brief ‰4角,éè¤6 */ @property (nonatomic, assign) CGFloat photoframeLineW; #pragma mark --¨” /** * ¨” */ @property (nonatomic,strong, nullable) UIImage * animationImage; /** éèéè‰,éè¤ RGBA (0,0,0,0.5) */ @property (nonatomic, strong, nullable) UIColor * notRecoginitonArea; /** * §‰¨” */ - (void)startScanAnimation; /** * “‰¨” */ - (void)stopScanAnimation; /** ¨¤‰°“ */ - (void)handlingResultsOfScan; /** ‰“¤ */ - (void)finishedHandle; /** ¤é—…‰… @param show YES or NO */ - (void)showFlashSwitch:(BOOL)show; @end ``` * §–WSLNativeScanTool’WSLScanView ``` //è“è§ UIView *preview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 0)]; [self.view addSubview:preview]; __weak typeof(self) weakSelf = self; //‰·è§ _scanView = [[WSLScanView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 0)]; _scanView.scanRetangleRect = CGRectMake(60, 120, (self.view.frame.size.width - 2 * 60), (self.view.frame.size.width - 2 * 60)); _scanView.colorAngle = [UIColor greenColor]; _scanView.photoframeAngleW = 20; _scanView.photoframeAngleH = 20; _scanView.photoframeLineW = 2; _scanView.isNeedShowRetangle = YES; _scanView.colorRetangleLine = [UIColor whiteColor]; _scanView.notRecoginitonArea = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]; _scanView.animationImage = [UIImage imageNamed:@"scanLine"]; _scanView.myQRCodeBlock = ^{ [WSLNativeScanTool createQRCodeImageWithString:@"https://www.jianshu.com/u/e15d1f***4bea" andSize:CGSizeMake(250, 250) andBackColor:[UIColor whiteColor] andFrontColor:[UIColor orangeColor] andCenterImage:[UIImage imageNamed:@"piao"]]; createQRCodeController.qrString = @"https://www.jianshu.com/u/e15d1f***4bea"; }; _scanView.flashSwitchBlock = ^(BOOL open) { [weakSelf.scanTool openFlashSwitch:open]; }; [self.view addSubview:_scanView]; //§–‰·…· _scanTool = [[WSLNativeScanTool alloc] initWithPreview:preview andScanFrame:_scanView.scanRetangleRect]; _scanTool.scanFinishedBlock = ^(NSString *scanString) { NSLog(@"‰“ %@",scanString); [weakSelf.scanTool sessionStopRunning]; [weakSelf.scanTool openFlashSwitch:NO]; }; _scanTool.monitorLightBlock = ^(float brightness) { NSLog(@"…‰ %f",brightness); if (brightness < 0) { // ¤—¤é—…‰…‰é’ [weakSelf.scanView showFlashSwitch:YES]; }else if(brightness > 0){ // ,”é—…‰¤…é——éè—é—…‰… if(!weakSelf.scanTool.flashOpen){ [weakSelf.scanView showFlashSwitch:NO]; } } }; [_scanTool sessionStartRunning]; [_scanView startScanAnimation]; ``` ![è.gif](http://upload-images.jianshu.io/upload_images/1708447-ce06388c244874ce.gif?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ## Welcome To Follow Me > ¨follow’start‘‰è¨Thanks(‰)‰ > * [](https://www.jianshu.com/u/e15d1f***4bea) > * [](https://weibo.com/5732733120/profile?rightmod=1&wvr=6&mod=personinfo&is_all=1) > * [é‘](https://juejin.im/user/5c00d97b6fb9a049fb436288) > * [CSDN](https://blog.csdn.net/wsl2ls) > * QQ¤¤835303405 > 艖…¨””iOS‘èéè·””…—·iOS2679114653 …—·iOS‘è…¤°—‘éè§,褧§èè·¨(¤) ^_^è·±‘”託’…±è” ![iOS‘èéè·.jpg](http://upload-images.jianshu.io/upload_images/1708447-c2471528cadd7c86.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

近期下载者

相关文件


收藏者