Chinaunix首页 | 论坛 | 博客
  • 博客访问: 869267
  • 博文数量: 322
  • 博客积分: 6688
  • 博客等级: 准将
  • 技术积分: 3626
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-19 11:26
文章分类

全部博文(322)

文章存档

2013年(5)

2012年(66)

2011年(87)

2010年(164)

分类: LINUX

2012-06-03 23:11:52

- (UIImage*)screenshot  {     
     // Create a graphics context with the target size     
     // On iOS 4 and later, use UIGraphicsBeginImageContextWithOptions to take the scale into consideration     
     // On iOS prior to 4, fall back to use UIGraphicsBeginImageContext    
     CGSize imageSize = [[UIScreen mainScreen] bounds].size;     
     if (NULL != UIGraphicsBeginImageContextWithOptions)        
         UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);     
     else         
         UIGraphicsBeginImageContext(imageSize);     
     CGContextRef context = UIGraphicsGetCurrentContext();      
     // Iterate over every window from back to front     
     for (UIWindow *window in [[UIApplication sharedApplication] windows])      {         
         if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen])         {             
             // -renderInContext: renders in the coordinate space of the layer,             
             // so we must first apply the layer's geometry to the graphics context             
             CGContextSaveGState(context);             
             // Center the context around the window's anchor point             
             CGContextTranslateCTM(context, [window center].x, [window center].y);             
             // Apply the window's transform about the anchor point            
             CGContextConcatCTM(context, [window transform]);             
             // Offset by the portion of the bounds left of and above the anchor point             
             CGContextTranslateCTM(context, -[window bounds].size.width * [[window layer] anchorPoint].x, 
                                   -[window bounds].size.height * [[window layer] anchorPoint].y);              
             // Render the layer hierarchy to the current context             
             [[window layer] renderInContext:context];              
             // Restore the context            
             CGContextRestoreGState(context);         
         }     
     }  
     
     // Retrieve the screenshot image     
     UIImage *image = UIGraphicsGetImageFromCurrentImageContext();      
     UIGraphicsEndImageContext();      
     return image; 
 }
阅读(581) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~