人脸识别和保存截图到相册

#import "ViewController.h"
#import "KLFaceDetector.h"

#define FACEIMGVIEW_TAG     100001
@interface ViewController ()

@property (nonatomic, strong) UIImageView * faceImgView;
@property (nonatomic, strong) UIImageView * imageView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UIImage * image = [self scaleImage:[UIImage imageNamed:@"IMG_2425.jpg"] toScale:0.1];
    _imageView = [[UIImageView alloc]initWithImage:image];
    [self.view addSubview:_imageView];
    
    UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(0, _imageView.frame.size.height+200, _imageView.frame.size.width, 40);
    [btn setTitle:@"图片保存" forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(pressBtn) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    
    UIButton * btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn1.frame = CGRectMake(0, _imageView.frame.size.height+260, _imageView.frame.size.width, 40);
    [btn1 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [btn1 setTitle:@"人脸识别" forState:UIControlStateNormal];
    [btn1 addTarget:self action:@selector(pressBtn1:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn1];
    
    UIButton * btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn2.frame = CGRectMake(0, _imageView.frame.size.height+310, _imageView.frame.size.width, 40);
    [btn2 setTitle:@"截图" forState:UIControlStateNormal];
    [btn2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [btn2 addTarget:self action:@selector(pressBtn2) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn2];
    
    UIImage * img = [UIImage imageNamed:@"Test.jpg"];
    NSAssert((img), @"IMG not found");
    CGSize imgSize = [img size];
    CGSize imgViewSize = CGSizeMake(self.view.frame.size.height/2.0*imgSize.width/imgSize.height, self.view.frame.size.height/2.0);
    self.faceImgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, imgViewSize.width, imgViewSize.height)];
    [_faceImgView setImage:img];
    [self.view addSubview:_faceImgView];
}

-(void)pressBtn2{
    
    CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width;
    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
    // 截图
     UIGraphicsBeginImageContextWithOptions(CGSizeMake(screenWidth, screenHeight), YES, 0);
     [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
     UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
     // 存入相册
    UIImageWriteToSavedPhotosAlbum(image, self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil);
     UIGraphicsEndImageContext();
}
-(void)pressBtn{
    UIImageView * imaView = (UIImageView*)[self.view viewWithTag:FACEIMGVIEW_TAG];
    
    //图片保存到本地相册
    UIImageWriteToSavedPhotosAlbum(imaView.image, self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil);
}
-(void)pressBtn1:(UIButton*)btn{
   
    [[self.view viewWithTag:FACEIMGVIEW_TAG] removeFromSuperview];
    CGSize imgSize = CGSizeMake(160, 120); // you can change this size to whatever you like
    [btn setTitle:@"Working..." forState:UIControlStateNormal];
    [KLFaceDetector getImageWithFaceForImage:self.faceImgView.image withSize:imgSize shouldFast:YES completionHandler:^(UIImage * faceImg) {
        [btn setTitle:@"GetFace" forState:UIControlStateNormal];
        UIImageView * imgView = [[UIImageView alloc] initWithFrame:CGRectMake(CGRectGetMaxX(btn.frame)+15, CGRectGetMaxY(self.faceImgView.frame)+25, imgSize.width, imgSize.height)];
        [imgView setBackgroundColor:[UIColor darkGrayColor]];
        [imgView setTag:FACEIMGVIEW_TAG];
        [imgView setImage:faceImg];
        [self.view addSubview:imgView];
    }];  
}
- (void)imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
    NSString *message = @"呵呵";
    if (!error) {
        message = @"成功保存到相册";
    }else
    {
          }
    NSLog(@"message is %@",message);
}

//等比缩放
- (UIImage *) scaleImage:(UIImage *)image toScale:(float)scaleSize {
    
    //opaque 是否透明   scale 模糊度  UIGraphicsBeginImageContextWithOptions(CGSizeMake(image.size.width*scaleSize, image.size.height*scaleSize), YES,10);
    [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height * scaleSize)];
    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
    
}
//自定义大小
- (UIImage *) reSizeImage:(UIImage *)image toSize:(CGSize)reSize {
    UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height));
    [image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)];
    UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return reSizeImage;
}

原文地址:https://www.cnblogs.com/sayimba/p/5666106.html