iOS截屏

2019-01-19  本文已影响7人  oldDevil

原理就是拿到需要截屏View的layer渲染到上下文中

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    //开启一个图片的上下文
    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0);
    //拿到我们开启的上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //把需要截屏View的layer渲染到上下文中
    [self.view.layer renderInContext:ctx];
    //从上下文中拿出图片
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    //因为上下文是我们自己开启的,所以用完之后要关闭掉
    UIGraphicsEndImageContext();
    
    //为了查看截屏效果,我把图片写到了电脑上
    //生成jpg格式的图片
    NSData *imgData = UIImageJPEGRepresentation(img, 1);
    //如果想生成png格式的图片调用下面的方法
    //NSData *imgData = UIImagePNGRepresentation(img);
    [imgData writeToFile:@"/Users/olddevil/Desktop/图片/img.jpg" atomically:YES];
}
上一篇 下一篇

猜你喜欢

热点阅读