项目中遇到截屏功能的实现

作者: iOSCoder | 来源:发表于2018-05-17 17:28 被阅读3次

截屏方式分为两种:

  • 截取当前屏幕全屏
  • 对指定区域view进行截取
截屏

1、截取当前屏幕全屏的实现方法

#pragma mark  -----截取当前屏幕全屏-----
- (UIImage *)snapshotCurrentFullScreen{
    
    // 判断是否为retina屏, 即retina屏绘图时有放大因子
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]){
        
        UIGraphicsBeginImageContextWithOptions(self.view.window.bounds.size, NO, [UIScreen mainScreen].scale);
        
    } else {
        
        UIGraphicsBeginImageContext(self.view.window.bounds.size);
        
    }
    
    [self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
    
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    // 保存到相册
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
    
    return image;
}

2、对指定区域view进行截取实现方法

#pragma mark  -----截取屏幕指定区域view-----
- (UIImage *)snapshotScreenInView:(UIView *)contentView{
    
    CGSize size = contentView.bounds.size;
    UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
    CGRect rect = contentView.bounds;
    
    //  自iOS7开始,UIView类提供了一个方法-drawViewHierarchyInRect:afterScreenUpdates: 它允许你截取一个UIView或者其子类中的内容,并且以位图的形式(bitmap)保存到UIImage中
    [contentView drawViewHierarchyInRect:rect afterScreenUpdates:YES];
    
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
    
    return image;
}

相关文章

  • 项目中遇到截屏功能的实现

    截屏方式分为两种: 截取当前屏幕全屏 对指定区域view进行截取 1、截取当前屏幕全屏的实现方法 2、对指定区域v...

  • 基于MediaProjection实现Android移动手机截屏

    Android软件应用经常要求实现截屏和录屏的功能,那么如何实现Android软件截屏和录屏功能呢?本文将介绍基于...

  • Flutter iOS端防止截屏

    最近项目中需要实现防止截屏功能,网上很多都是推荐使用flutter_forbidshot,但是这个只能设置Andr...

  • 针对WKWebView进行内容的截屏。

    最近项目中需要截屏分享的功能,之前也了解过iOS截屏的技术,并写了关于截屏的笔记,兴冲冲的拿着代码稍作修改,对WK...

  • ios小技巧(持续更新)

    1.实现截屏功能 CGImageRef UIGetScreenImage(); CGImageRef img = ...

  • Android App内截屏监控及涂鸦功能实现

    Android截屏功能是一个常用的功能,可以方便的用来分享或者发送给好友,本文介绍了如何实现app内截屏监控功能,...

  • 如何实现Android截屏功能?

    1. 业务需求 之前在龙珠直播工作时,遇到过一个截屏分享需求,不过当时截屏功能的代码是上海的同事实现的,当时只是拿...

  • 对控件截屏并保存到系统相册

    前言 项目中有个需求就是对某个控件截屏,并将截屏的图片保存到系统相册。这里记录下我的实现过程。 实现过程 在具体实...

  • Quartz 2D (2)

    1、圆形图片裁剪 2、实现手机屏幕截屏功能(把控制器中View的内容截屏生成一张新的图片) 3、图片截屏 4、图片...

  • Android实现截屏功能

    可以获取屏幕上任意view 的截屏:private Bitmap takeScreenOfView(View v)...

网友评论

    本文标题:项目中遇到截屏功能的实现

    本文链接:https://www.haomeiwen.com/subject/lhhidftx.html