zoukankan      html  css  js  c++  java
  • 图片擦除

        图片擦除思路.
        弄两个不同的图片.上面一张, 下面一张.
        添加手势,手指在上面移动,擦除图片.
        擦除前要先确定好擦除区域.
        假设擦除区域的宽高分别为30.
        那点当前的擦除范围应该是通过当前的手指所在的点来确定擦除的范围,位置.
        那么当前擦除区域的x应该是等于当前手指的x减去擦除范围的一半,同样,y也是当前手指的y减去高度的一半.
        
        有了擦除区域,要让图片办到擦除的效果,首先要把图片绘制到图片上下文当中, 在图片上下文当中进行擦除.
        之后再生成一张新的图片,把新生成的这一张图片设置为上部的图片.那么就可以通过透明的效果,看到下部的图片了.
        
        第一个参数, 要擦除哪一个上下文
        第二人参数,要擦除的区域.
        CGContextClearRect(ctx, rect);
        
        具体实现代码为:
        
        确定擦除的范围
        CGFloat rectWH = 30;
        获取手指的当前点.curP
        CGPoint curP = [pan locationInView:pan.view];
        CGFloat x = curP.x - rectWH * 0.5;
        CGFloat y = curP.y - rectWH * 0.5;
        CGRect rect = CGRectMake(x, y,rectWH, rectWH);
        
        先把图片绘制到上下文.
        UIGraphicsBeginImageContextWithOptions(self.imageView.bounds.size, NO, 0);
        获取当前的上下文
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        把上面一张图片绘制到上下文.
        [self.imageView.layer renderInContext:ctx];
        再绘上下文当中图片进行擦除.
        CGContextClearRect(ctx, rect);
        生成一张新图片
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
        再把新的图片给重新负值
        self.imageView.image = newImage;
        关闭上下文.
        UIGraphicsEndImageContext();

  • 相关阅读:
    学PHP应注意的问题与知识点
    php 的生命周期
    Pyhton中汉字的使用方法(转)
    院外培训:GIS数据处理与建模高级培训班学习心得体会 来自
    绕人的python汉字问题
    arcmap导出或者打印时插入的图片和对象绘制失败
    【百度地图API】如何获取行政区域的边界? (转)
    VS2010不能编译.Net3.5项目的解决方法(转)
    ArcGIS中Python汉字使用说明(转)
    ArcGIS10联网无法启动问题解决
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/7020714.html
Copyright © 2011-2022 走看看