zoukankan      html  css  js  c++  java
  • IOS 屏幕截图 UIScrollview

    //截图
    UIView:截全图

    -(UIImage*)captureView:(UIView *)theView{
        CGRect rect = theView.frame;
        if ([theView isKindOfClass:[UIScrollView class]]) {
            rect.size = ((UIScrollView *)theView).contentSize;
        }
    	
    	UIGraphicsBeginImageContext(rect.size);
    	CGContextRef context = UIGraphicsGetCurrentContext();
    	[theView.layer renderInContext:context];
    	UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    	UIGraphicsEndImageContext();
    	return img;
    }
    
    

    UIView:截取部分视图

    -(UIImage*)imageFromView:(UIView *)theView atFrame:(CGRect)rect

    {

        UIGraphicsBeginImageContext(theView.frame.size);

        CGContextRef context = UIGraphicsGetCurrentContext();

        CGContextSaveGState(context);

        UIRectClip(rect);

        [theView.layer renderInContext:context];

        UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();

        return  theImage;

    }

    UIScrollView:

    - (UIImage *)captureScrollView:(UIScrollView *)scrollView{
        UIImage* image = nil;
        UIGraphicsBeginImageContext(scrollView.contentSize);
        {
            CGPoint savedContentOffset = scrollView.contentOffset;
            CGRect savedFrame = scrollView.frame;
            scrollView.contentOffset = CGPointZero;
            scrollView.frame = CGRectMake(0, 0, scrollView.contentSize.width, scrollView.contentSize.height);
            
            [scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
            image = UIGraphicsGetImageFromCurrentImageContext();
            
            scrollView.contentOffset = savedContentOffset;
            scrollView.frame = savedFrame;
        }
        UIGraphicsEndImageContext();
        
        if (image != nil) {
            return image;
        }
        return nil;
    }
  • 相关阅读:
    Adobe官方推荐的ActionScript的最佳做法和编码约定
    从Array extends 时要使用 dynamic 关键字
    java本质——内存分布
    函数参数传递
    AS3.0连接FMS2.0
    C#序列化和反序列化代码
    XmlSerializer 对象的Xml序列化和反序列化
    ASP.NET2.0服务器控件之Render方法
    加密技术在企业数据安全中的应用
    IEnumerable IEnumerator 接口
  • 原文地址:https://www.cnblogs.com/rollrock/p/4542345.html
Copyright © 2011-2022 走看看