图片擦除

图片擦除实现步骤

  • 加载图片,并添加拖动手势;另外加载一张背景图片,用于图片被擦除后显示,置于擦除图片下方

  • 开启位图上下文(与图片大小一致)

  • 获取当前位图上下文

  • 将图片控件的layer通过renderInContex绘制到位图上下文中

  • 清除上下文中某一部分

  • 从上下文中获取这张图片

  • 关闭上下文

  • 将擦除后的图片显示回控件中

// 加载图片,并添加拖动手势;另外加载一张背景图片,用于图片被擦除后显示,置于擦除图片下方,已通过storyboard实现

//监视拖动
- (IBAction)pan:(UIPanGestureRecognizer *)sender {

// 开启位图上下文
    UIGraphicsBeginImageContextWithOptions(sender.view.bounds.size, NO, 0);

// 获取当前位图上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();

// 渲染控件,相当于控件的layer图层加载到位图上下文中
    [sender.view.layer renderInContext:ctx];

//  清除上下文中某一部分
    //获取当前触摸点
    CGPoint curP =[sender locationInView:sender.view];

    //计算擦除区域
    CGFloat wh = 30;
    CGFloat x = curP.x - wh * 0.5;
    CGFloat y = curP.y - wh * 0.5;
    CGRect clearR = CGRectMake(x, y, wh, wh);

    // 核心代码
    CGContextClearRect(ctx, clearR);

// 从上下文中生成一张图片
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

// 关闭上下文
    UIGraphicsEndImageContext();

// 将擦除后的图片显示回控件中
    UIImageView *imageV = (UIImageView *)sender.view;
    imageV.image = image;

}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 福利来袭之用苍老师神图做图片擦拭小案例 先看效果: 图片擦除思路. 弄两个不同的图片.上面一张, 下面一张. 添加...
    onlychenj阅读 5,552评论 0 0
  • 1.圆形图片裁剪 目标明确: 得到一张图片 (=> 位图上下文,手动开启和关闭,代码位置任意)思路:先设置好位图上...
    夏天不冷阅读 4,274评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,651评论 25 709
  • 1、思路分析 拖动的时候,擦除图片的某一部分 手指拖拽的时候,清除指定位置,确定矩形区域,把控件上的内容渲染到上下...
    iOS_成才录阅读 3,690评论 0 1
  • 文/添一抹岚 上个星期,天气好得出奇。早晨没有雾气缭绕,也无需拨开暗云方见天,早早地,朝阳便照耀大地。 这样美好的...
    添一抹岚阅读 3,961评论 25 14

友情链接更多精彩内容