iOS当前屏幕截屏

需求描述:

有两个ViewController 我们记做 A、B ,其中B controller只是显示下半部分;

如下图效果:

实现这种的方案很多,可以用添加View方法,  也可以用UIWindows 来实现。

但是我这边是想用presentViewController 实现,但是A present  B之后,之前的A就会消失,不会和B 覆盖显示,因此就相当了截取A试图之后在present B。

具体看看实现方案吧:

方法一:

这个方法获取的到图片不会失真

1 -(UIImage *)captureImageFromViewLow:(UIView *)orgView {
2     //获取指定View的图片
3     UIGraphicsBeginImageContextWithOptions(orgView.bounds.size, NO, 0.0);
4     CGContextRef context = UIGraphicsGetCurrentContext();
5     [orgView.layer renderInContext:context];
6     UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
7     UIGraphicsEndImageContext();
8     return image;
9 } 

方法二:

截取的图片覆盖重新展示之后,会出现失真现象

//获取全屏图片
-(UIImage *)fullScreenshots{

    UIWindow *screenWindow = [[UIApplicationsharedApplication] keyWindow];

    UIGraphicsBeginImageContext(screenWindow.frame.size);//全屏截图,包括window

    [screenWindow.layerrenderInContext:UIGraphicsGetCurrentContext()];

    UIImage *viewImage =UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();
    return viewImage;
}

综合这两个方案,最终我选择了方案一

时间: 2024-10-12 19:11:27

iOS当前屏幕截屏的相关文章

iOS中的截屏(屏幕截屏及scrollView或tableView的全部截屏)

iOS中的截屏(屏幕截屏及scrollView或tableView的全部截屏) 2017.03.16 12:18* 字数 52 阅读 563评论 4喜欢 2 1. 截取屏幕尺寸大小的图片并保存至相册 保存至相册只需将方法saveImage中的代码替换即可 UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 0.0); [self.view.layer renderInContext:UIGraphicsGetCur

Java邮件发送与屏幕截屏

前几天七夕情人节孤独寂寞的程序猿闲来没事,花了一两个小时写了个小Demo主要实现Java的Mail发送功能和桌面截屏功能. 首先让我们先看看Java sendMail邮件发送和桌面屏幕截屏功能是怎么实现的基础知识. 一.Java  SendMail邮件发送 首先让我们来看看邮件发送的原理图: JavaMail 是一套sun 提供开发邮件收发程序API,JavaMail编写程序就是邮件客户端程序(和outlook.foxmail功能类似) * JavaMail开发需要类库 javamail API

iOS模块器截屏闪退

最近不知道什么原因,iOS模块器截屏命令点击模拟器就闪退,在此记录下在命令行截屏操作: 第一步:打开对应的模拟器 第二步:模拟器缩放比为100% 第三步:输入以下命令,001.jpg为要保存的文件名 xcrun simctl io booted screenshot 001.jpg

iOS 图片截取 截屏

iOS中对图片的截取 转载的话,请标明出自博客园 截取图片的话 需要指定对象.代码不多,我不太会说,贴一下好了 1 /** 2 * 大图切小图 3 * 4 * @param BIGimg 大图 5 * 6 * @return 小图 7 */ 8 -(UIImage *)getImageFromImage :(UIImage*)BIGimg{ 9 10 //大图bigImage 11 //定义myImageRect,截图的区域 相对位置 12 CGRect myImageRect = CGRect

超好用的滚动屏幕截屏工具FastStone Capture

对于超级喜欢整理的技术控,一看到比较好技术文章就想收集下来,单纯的记录网页,又怕作者删除,我只能选择截图,可是有许多文章特别长,直到使用FastStone Capture截图工具,终于可以快速收集这些技术文章了. 1.截图工具是这样的 2.比较好用的滚动截屏使用方法: 图中第六个图标. 1)点击后,可以拖动窗口进行大范围的截图,比如可以将浏览器的网页做为截图对象,截取时,点击选取滚动条箭头就可以完成截图,ESC中断截图滚动! 2)在选定滚动截图图标后还可以按ctrl键进行滚动区域的选择. 3.图

ios xcode真机调试获取屏幕截屏

非常多时候我们须要在调试的过程中把手机屏幕截图发给其它人看,在android开发中我们能够非常方便的截图保存.而xcode开发ios的时候发现这个需求却如此困难.网上大部分都是介绍的以下这个方案.可是我在xcode 6.2中却不能使用. 1.进入xcode 2.右上角的[Origanizer] 3.左边project下的[Screenshots] 4.xcode右下角的[New Screenshots] 而我无意中发现还有一种办法是可行的 1.进入xcode 2.点击上面一排的Window 3.

iOS屏幕截屏

#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //开启位图上下文 UIGraphicsBeginImageContext

C# 实现屏幕截屏

//屏幕宽            int iWidth = Screen.PrimaryScreen.Bounds.Width;            //屏幕高            int iHeight = Screen.PrimaryScreen.Bounds.Height;            //按照屏幕宽高创建位图            Image img = new Bitmap(iWidth, iHeight);            //从一个继承自Image类的对象中创建

delphi 屏幕截屏

function GetScreenAll: TBitmap; // 截取全屏 var C: TCanvas; begin C := TCanvas.Create; result := TBitmap.Create; result.Width := Screen.Width; result.Height := Screen.Height; C.Handle := GetDC(0); // 获取屏幕的设备上下文句柄,并拷贝 result.Canvas.CopyRect(Rect(0, 0, scr