关于iPhone/iPad全屏截图与区域截图的几种方法总结

来源:互联网 发布:万网域名过期多久删除 编辑:程序博客网 时间:2024/04/28 17:12

截取本区域(self.view):

UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.widthself.view.frame.size.height));
    
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    
UIGraphicsEndImageContext();
    
UIImageWriteToSavedPhotosAlbum(viewImagenilnilnil);

全屏截图:

UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
    
UIGraphicsBeginImageContext(screenWindow.frame.size);
    
[screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
    
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    
UIGraphicsEndImageContext();
    
UIImageWriteToSavedPhotosAlbum(viewImagenilnilnil);

以上2种方法真机和模拟器都可以运行.在photo.app里可以看到照片

苹果最新开放的接口函数(全屏截图),已经有人试过了,不会reject:(没有试验过,不知道可不可以上传appstore)

CGImageRef UIGetScreenImage()
    
CGImageRef img = UIGetScreenImage();
    
UIImagescImage=[UIImage imageWithCGImage:img];
    
UIImageWriteToSavedPhotosAlbum(scImagenilnilnil);

It still works,but only on-device (not in simulator) .

截图另存为指定名字:

UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
 
UIGraphicsBeginImageContext(screenWindow.frame.size);
[screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
 
NSData *screenshotPNG = UIImagePNGRepresentation(screenshot);
 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMaskYES);
NSString *documentsDirectory = [paths objectAtIndex:0];
 
NSError *error = nil;
[screenshotPNG writeToFile:[documentsDirectory stringByAppendingPathComponent:@"screenshot.png"]options:NSAtomicWrite error:&error];

本文转自:
http://hi.baidu.com/qqv2/blog/item/20244323e98ef1499922ed71.html


-(UIImage *)scaleimage:(UIImage *)img size:(CGSize)c

{

            UIGraphicsBeginImageContext(c);

            [img drawInRect:CGRectMake(0, 0, c.width, c.height)];

            UIImage *image=UIGraphicsGetImageFromCurrentImageContext();

           UIGraphicsEndImageContext();

            return image;

}


原创粉丝点击