美文网首页
QuartZ2D_05刮刮乐

QuartZ2D_05刮刮乐

作者: 立刻就爽 | 来源:发表于2016-05-24 17:55 被阅读30次

    开始先引入UIKit框架

    #import "ViewController.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        [self waterImage];
        [self clearUpImage];
        
    }
    /** 刮刮乐 */
    - (void)clearUpImage{
        //图片透明
        //添加图片
        UIImageView *v2 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"2.jpg"]];
        v2.frame = self.view.frame;
        [self.view addSubview:v2];
        
        UIImageView *v1 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"1.jpg"]];
        v1.frame = self.view.frame;
        [self.view addSubview:v1];
        
        //添加手势
        UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];
        [v1 addGestureRecognizer:pan];
        v1.userInteractionEnabled = YES;
    }
    - (void)panAction:(UIGestureRecognizer *)sender{
       //获取当前点
        CGPoint currentPoint = [sender locationInView:sender.view];
        //设置擦除范围
        CGFloat w = 50;
        CGRect clearR = CGRectMake(currentPoint.x - w / 2, currentPoint.y - w / 2, w, w);
        //开启图片上下文
         UIGraphicsBeginImageContextWithOptions(sender.view.frame.size, NO, 0);
        //获取上下文
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        //将图片提交给上下文
        [sender.view.layer renderInContext:ctx];
        //擦除
        CGContextClearRect(ctx, clearR);
        //获取擦除后的图片
        UIImage *i = UIGraphicsGetImageFromCurrentImageContext();
        
        //赋值
        UIImageView *imv = (UIImageView *)sender.view;
        imv.image = i;
        //结束上下文
        UIGraphicsEndImageContext();
      
    
    }
    /** 图片打水印 */
    - (void)waterImage{
        //获取图片
        UIImage *image = [UIImage imageNamed:@"1.jpg"];
        //开启图形上下文
        UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
        //绘制图片
        [image drawAtPoint:CGPointZero];
        //准备水印内容
        
        //文字
        NSString *str = @"爽爽出品";
        NSMutableDictionary *dict = [NSMutableDictionary dictionary];//改写字体属性
        dict[NSFontAttributeName] = [UIFont systemFontOfSize:30];//字号
        dict[NSForegroundColorAttributeName] = [UIColor blueColor];//颜色
        dict[NSStrokeWidthAttributeName] = @5;//空心
        [str drawInRect:CGRectMake(250, 380, 200, 50) withAttributes:dict];
        //图片
        UIImage *star = [UIImage imageNamed:@"star_faved"];
        [star drawInRect:CGRectMake(200, 380, 50, 50)];
        //生成一个新图片
        UIImage *i = UIGraphicsGetImageFromCurrentImageContext();
        UIImageView *imv = [[UIImageView alloc]initWithImage:i];
        imv.frame = self.view.frame;
        [self.view addSubview:imv];
    
    }
    @end
    
    

    相关文章

      网友评论

          本文标题:QuartZ2D_05刮刮乐

          本文链接:https://www.haomeiwen.com/subject/qpvzrttx.html