截取本区域(self.view):

UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.width, self.view.frame.size.height));
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
全屏截图:

UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
    UIGraphicsBeginImageContext(screenWindow.frame.size);
    [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
以上2种方法真机和模拟器都可以运行.在photo.app里可以看到照片

苹果最新开放的接口函数(全屏截图),已经有人试过了,不会reject:

CGImageRef UIGetScreenImage(); 
    CGImageRef img = UIGetScreenImage();
    UIImage* scImage=[UIImage imageWithCGImage:img];
    UIImageWriteToSavedPhotosAlbum(scImage, nil, nil, nil);
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(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSError *error = nil;
[screenshotPNG writeToFile:[documentsDirectory stringByAppendingPathComponent:@"screenshot.png"] options:NSAtomicWrite error:&error];
部分代码来自: http://stackoverflow.com/questions/692464/emailing-full-screen-of-iphone-app

没有ipad真机截图发布app的可以用此方法做个透明按钮点,哈哈.
截取本区域(self.view):

UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.width, self.view.frame.size.height));
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
全屏截图:

UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
    UIGraphicsBeginImageContext(screenWindow.frame.size);
    [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
以上2种方法真机和模拟器都可以运行.在photo.app里可以看到照片

苹果最新开放的接口函数(全屏截图),已经有人试过了,不会reject:

CGImageRef UIGetScreenImage(); 
    CGImageRef img = UIGetScreenImage();
    UIImage* scImage=[UIImage imageWithCGImage:img];
    UIImageWriteToSavedPhotosAlbum(scImage, nil, nil, nil);
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(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSError *error = nil;
[screenshotPNG writeToFile:[documentsDirectory stringByAppendingPathComponent:@"screenshot.png"] options:NSAtomicWrite error:&error];
部分代码来自: http://stackoverflow.com/questions/692464/emailing-full-screen-of-iphone-app

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

  1. iPhone/iPad全屏截图与区域截图的几种方法

    截取本区域(self.view): 1 2 3 4 5 UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.width, self. ...

  2. Unity中的截图方法(包括全屏截图、区域截图、Camera截图和摄像头截图)

    Unity中的截图方法(包括全屏截图.区域截图.Camera截图和摄像头截图) Application.CaptureScreenshot ScreenCapture Texture2D.ReadPi ...

  3. macOS下长截图的两种方法

    macOS虽然系统自带截图工具,但是不具体长截图功能,下面介绍macOS下长截图的两种方法 对于Chrome浏览器 使用浏览器自带的开发者工具截图,可以对完整的整个网页进行截图 不需要安装第三方工具 ...

  4. mac电脑快速截图快捷键是什么?苹果mac电脑怎么截图?mac电脑截图的13种方法

    mac上各种截图软件层出不穷,你又不知道哪款好用,所以小编今天为大家带来mac电脑截图的13种方法,不管你是用iMac.iMac Pro.MacBook.MacBook Air还是MacBook Pr ...

  5. android平板电脑截屏,平板电脑怎样截图(iPad手机截图的3种方法)

    想要在新的iPad Pro上截屏吗?鉴于最新的iPad Pro型号不再具有Home按钮人工智能高中版下载,因此在iPad上截取屏幕截图的旧方法不再有效,因为在iPad Pro上没有按下Home按钮来截 ...

  6. Adobe acrobat 获得PDF高清截图的两种方法(翻译外文用)

    第一种方法也是最推荐(最高清的截图)的方法: 1 打开PDF然后,文件->导出->图像->png:最后再选择保存的文件夹就可以了,这样就能保存高清的图像.如果需要裁减边缘就把图像用普 ...

  7. 电脑计算机科学模式截屏,电脑截图的几种方法,简单实用-电脑怎么截图

    经常使用电脑的小伙伴,经常会需要用到截图功能,可能是一部分区域,也可能是整个屏幕.用手机拍的话会很麻烦,而且拍出来的照片也不够清晰.那么都有哪些简单实用的截图方法呢?小Y来告诉你~ 1.键盘上的快捷键 ...

  8. iphone新旧手机数据传输已取消_如何取消iPhone手机App自动扣费?三种方法让你不再被“偷”...

    一直以来苹果手机App这个自动续费真是让大家不胜其烦,钱虽然不多可总是平白无故这里十块,那里二十块的被扣也是不小的浪费,日常生活中为了追追剧.听听音乐.玩玩游戏难免会开通一些App会员而选择自动续费的 ...

  9. html页面打印+区域,实现web网页指定区域打印的三种方法

    通过本教程可以实现,将印web网页指定区域的内容,本教程将提供三种方法实现. 方法一:打印网页指定区域 HTML 在需要打印的内容 // 页面上的内容大小调整可以css调整或容器包容 打印容器内的内容 ...

最新文章

  1. QIIME 2用户文档. 3老司机上路指南(2018.11)
  2. matlab能修图吗,相机上这个“功能”,不打开会影响修图效果,别等拍完照片才知道...
  3. java inflaterinputstream_java.util.zip.InflaterInputStream.available()方法示例
  4. Java面向对象(2)--类的成员属性
  5. 监控mysql数据库里的数据_有谁知道哪种软件可以监控mysql数据库上执行的数据脚本吗?...
  6. ASP.NET---- Microsoft .NET Pet Shop 3.x(-)
  7. nodejs项目安装ant design
  8. 【Linux】/etc/shadow文件字段解释
  9. CTO@全体成员,未经允许和评审不让用反射,Java反射到底慢在哪?
  10. SocketTool.exe 端口占用
  11. JAVA毕业设计大数据在线考试系统在线阅卷系统及大数据统计分析计算机源码+lw文档+系统+调试部署+数据库
  12. stata面板数据gmm回归_12短动态面板数据模型2-系统GMM估计-Stata软件操作教程
  13. 【图像分割】最大类间方差法(otsu)图像分割
  14. ps证件照换底色(红/蓝/其他颜色都可)
  15. html中title属性和alt属性的区别
  16. 1038: 角谷猜想
  17. 1.回文是指正读和反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈。)2.假设以带头结点的循环链
  18. Halcon形态学梯度
  19. qq群 发言统计for tc
  20. 【笔记】案例研究(红酒和白酒)

热门文章

  1. BERT各个超参数含义
  2. Lesson01_Java开发环境
  3. 学习 DeFi 的动机和意义
  4. DSG RealSync VS. Quest Shareplex
  5. QT 多线程串口通讯 串口助手
  6. 简单的Java代码测试样例设计
  7. EOS 区块链数据实时异构到 MySQL
  8. MySQL插入汉字报错的解决方案
  9. matlab如何将横轴上的汉字旋转90度,第72节:在液晶屏中把字体顺时针旋转90度显示的算法程序...
  10. 免费流量越来越难,付费推广势在必行