iOS - Quartz2D图片擦除

作者:Mitchell 

  • Demo地址
  • 业务逻辑:上下两张图片,上方遮盖,下方擦除之后想要显示的图片,为上方图片添加手势,根据手势的位置创建擦除的小块,然后开启位图,渲染被擦除的图层,清楚掉pan手势划过的区域,生成新的图片,关闭位图上下文,将新的图片赋给被擦除的图片。
    • 获得当前触摸点
    CGPoint curP = [sender locationInView:sender.view];
- 确定擦除区域
    CGFloat wh = 100;
    CGRect clearR = CGRectMake(curP.x-wh*0.5, curP.y-wh*0.5, wh, wh);
- 开启位图上下文
    UIGraphicsBeginImageContextWithOptions(sender.view.frame.size, NO, 0);
- 获取当前上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
- 渲染控件
    [sender.view.layer renderInContext:ctx];
- 清除上下文某一部分
    CGContextClearRect(ctx, clearR);
- 从上下文中生成一张图片
    UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
- 关闭上下文
    UIGraphicsEndImageContext();
- 将生成的图片赋给覆盖的ImageView
     UIImageView*imageV = (UIImageView*)sender.view;
    imageV.image = image;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Quartz2D以及drawRect的重绘机制字数1487 阅读21 评论1 喜欢1一、什么是Quartz2D Q...
    PurpleWind阅读 810评论 0 3
  • 1.圆形图片裁剪 目标明确: 得到一张图片 (=> 位图上下文,手动开启和关闭,代码位置任意)思路:先设置好位图上...
    夏天不冷阅读 832评论 0 1
  • Quartz2D 简介及用途 Quartz 2D 是一个二维绘图引擎,同时支持iOS和Mac系统,Quartz2D...
    45b645c5912e阅读 992评论 1 16
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,580评论 6 30
  • 国内 1. 头条 | 云南15家光伏、风电企业坚决反对云南物价局电价政策 据悉,云南省物价局此前发出征求意见稿称:...
    TONSofTIME阅读 269评论 0 0