• 图片截屏


        图片截屏实现思路.
        手指在屏幕上移动的时
        添加一个半透明的UIView,
        然后开启一个上下文把UIView的frame设置成裁剪区域.把图片显示的图片绘制到上下文当中,生成一张新的图片
        再把生成的图片再赋值给原来的UImageView.
        
        具体实现步骤:
        1.给图片添加一个手势,监听手指在图片上的拖动,添加手势时要注意,UIImageView默认是不接事件的.
          要把它设置成能够接收事件
        2.监听手指的移动.手指移动的时候添加一个UIView,
          x,y就是起始点,也就是当前手指开始的点.
          width即是x轴的偏移量,
          高度即是Y轴的偏移量.
          UIView的尺寸位置为CGrect(x,y,witdth,height);
          
          计算代码为:
          CGFloat offSetX = curP.x - self.beginP.x;
          CGFloat offsetY = curP.y - self.beginP.y;
          CGRect rect = CGRectMake(self.beginP.x, self.beginP.y, offSetX, offsetY);
          
          UIView之需要添加一次,所以给UIView设置成懒加载的形式,
          保证之有一个.每次移动的时候,只是修改UIView的frame.
          
        3.开启一个图片上下文,图片上下文的大小为原始图片的尺寸大小.使得整个屏幕都能够截屏.
          利用UIBezierPath设置一个矩形的裁剪区域.
          然后把这个路径设置为裁剪区域.
          把路径设为裁剪区域的方法为:
          [path addClip];
          
        4.把图片绘制到图片上下文当中
          由于是一个UIImageView上面的图片,所以也得需要渲染到上下文当中.
          要先获取当前的上下文,
          把UIImageView的layer渲染到当前的上下文当中.
          CGContextRef ctx = UIGraphicsGetCurrentContext();
          [self.imageV.layer renderInContext:ctx];
          
        5.取出新的图片,重新赋值图片.
          UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
          self.imageV.image = newImage;
          
        6.关闭上下文,移除上面半透明的UIView
          UIGraphicsEndImageContext();
          [self.coverView removeFromSuperview];

  • 相关阅读:
    复利计算(修改后)
    复利计算测试(C语言)
    实验一、命令解释程序的编写
    《构建之法》之第一二三章读后感
    复利计算1.0 2.0 3.0
    复利计算总结
    Scrum 项目7.0——第一个Sprint的总结和读后感
    Scrum 项目7.0——第一个Sprint的演示和回顾
    Scrum 项目4.0&&5.0
    操作系统——进程调度模拟程序
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/7020824.html
Copyright © 2020-2023  润新知