zoukankan      html  css  js  c++  java
  • IOS 截屏

    UIImage+Screenshot.h
    
    #import <UIKit/UIKit.h>
    
    @interface UIImage (Screenshot)
    
    + (UIImage *)screenshot;
    
    @end
    
    
    #import "UIImage+Screenshot.h"
    
    @implementation UIImage (Screenshot)
    
    + (UIImage *)screenshot
    {
        CGSize imageSize = [[UIScreen mainScreen] bounds].size;
     
        if (NULL != UIGraphicsBeginImageContextWithOptions) {
            UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
        } else {
            UIGraphicsBeginImageContext(imageSize);
        }
        
        CGContextRef context = UIGraphicsGetCurrentContext();
        
        for (UIWindow *window in [[UIApplication sharedApplication] windows]) {
            if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen]) {
                CGContextSaveGState(context);
    
                CGContextTranslateCTM(context, [window center].x, [window center].y);
    
                CGContextConcatCTM(context, [window transform]);
                
                CGContextTranslateCTM(context,
                                      -[window bounds].size.width * [[window layer] anchorPoint].x,
                                      -[window bounds].size.height * [[window layer] anchorPoint].y);
                
                [[window layer] renderInContext:context];
                
                CGContextRestoreGState(context);
            }
        }
        
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        
        UIGraphicsEndImageContext();
        
        return image;
    }
    
    @end

    // 使用

      UIImage *image = [UIImage screenshot];

     
  • 相关阅读:
    setState 是异步吗?
    React优化点滴
    JS原型,作用域,this,闭包
    Webpack 模块化打包优化
    JS异步编程
    Web网络安全
    Http2.0和Http3.0
    Http协议基础
    Harris算子以及未来的规划...
    剑指offer 二维数组查找
  • 原文地址:https://www.cnblogs.com/joesen/p/4074069.html
Copyright © 2011-2022 走看看