iOS 截屏方法

static int ScreenshotIndex=0;

//判断是否是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);

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString * documentsDirectory = [paths objectAtIndex:0];

NSString * pictureName= [NSString stringWithFormat:@"image_%d.png",ScreenshotIndex];

self.savedImagePath = [documentsDirectory stringByAppendingPathComponent:pictureName];

NSLog(@"截屏路径打印: %@", self.savedImagePath);

NSData * data = UIImagePNGRepresentation(image);

//保存照片到沙盒目录

[data writeToFile:self.savedImagePath atomically:YES];

ScreenshotIndex++;

时间: 2024-10-27 05:33:40

iOS 截屏方法的相关文章

IOS截屏,View截图的基本方法

IOS截屏的方法网上有很多,以下是我个人认为比较好的一个,我稍微改了一点 来源:SDScreenshotCapture #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) UIImage *getImageWithFullScreenshot(vo

iOS开发日记19-7.0之后的截屏方法

今天博主有一个截屏的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. iOS7.0之后废除了之前常用的截屏方法,也新增了截屏的API.代码相对简单,今天就贴出来,大家自行研究. 1. -(void) screenShot { UIGraphicsBeginImageContext(self.view.bounds.size); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image=

IOS截屏

最近,在找IOS截屏的方法.找到一个,现在记录下来.跟我想的差不多,还是,进入操作(初始化),操作(复制当前屏幕,保存),退出.最小的操作结构. 1 . 先指定图像的大小 UIGraphicsBeginImageContext(view.frame.size); 2. 在指定的区域绘制图像 [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO]; 3. 获取图像上下文 UIImage *image = UIGraphics

ios 截屏

把当前屏幕作为获取成为图片 - (UIImage *)rn_screenshot {    UIGraphicsBeginImageContext(self.bounds.size);    [self.layer renderInContext:UIGraphicsGetCurrentContext()];    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext(

unity3d 3中截屏方法

每天一点知识点(Unity中三种截屏方法)热度 231388 2015-9-1 11:29 |个人分类:学习笔记| 知识点, 截屏 /// <summary> /// 截取全屏的方法包括UI /// </summary> public void CaptureScreen() { Application.CaptureScreenshot("截取全屏.png", 0); Debug.Log(1); } /// <summary> /// 自定义截图大

分享一种全新的截屏方法

一种全新的截屏方法 在任何时候点击手机上的浮动小球(红色圈内)就能完成整个屏幕信息的截取功能,而且最终保存的图像还不会包含该小球,这就是本文将要介绍的方法.手机整体屏幕获取项目下载链接:http://files.cnblogs.com/files/tgyf/CaptureScreen.rar. 以全新的视角实现手机屏幕的截取(快照)功能,文章可能比较长,感兴趣的朋友一定得看完,会有收获的哦!若发现有哪些地方存在问题或某些功能有更好的实现方式,欢迎指点,先谢过(我可以尽快改正或完善,以免继续误导别

常见的几种截屏方法

最近我一直在做实验,自然实验得截图(xp电脑,为毛不是win7啊).但是实验室的电脑却是古董机,很少情况不卡死.截图就成了一件烦心的事! 曾经我一度登上QQ在去截图,但是QQ貌似有点麻烦,经常把我电脑搞的卡死.而且保存起来也不方便. 我求助于我的同学,他说:电脑上不是有PrtSc么?我真想扁他,那个是截整个屏幕的图啊,我要那么大的图,另外还得在画图等工具里面才能粘贴保存,多麻烦啊!接着有一个同学提醒我:你按住Alt+PrtSc试试看.他接着说你把鼠标放在这个界面(鼠标放在图片的里面就截那个图片)

ios截屏使用的方法

- (UIImage*)getimage{//截屏使用的方法CGSize imageSize = [[UIScreen mainScreen] bounds].size;if (NULL != UIGraphicsBeginImageContextWithOptions) {UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);} else {UIGraphicsBeginImageContext(imageSize);}CGConte

ios截屏代码[转]

http://www.cnblogs.com/chenxiangxi/p/3547974.html 这位博主的连接中将ios自定义大小位置的截屏代码写的很不错,马上就能用的方法,对于只想马上用的程序员很有帮助 http://www.2cto.com/kf/201310/250228.html 我将其改为以下代码: 1 #pragma mark -=====自定义截屏位置大小的逻辑代码=====- 2 static int ScreenshotIndex=0; //这里的逻辑直接采用上面博主的逻辑