iOS开发--截屏

- (void)snapshotScreen:(UIView *)myView {
    CGSize size = myView.bounds.size;
    UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
    CGRect rect = myView.frame;
    //  自iOS7开始,UIView类提供了一个方法-drawViewHierarchyInRect:afterScreenUpdates: 它允许你截取一个UIView或者其子类中的内容,并且以位图的形式(bitmap)保存到UIImage中
    [myView drawViewHierarchyInRect:rect afterScreenUpdates:YES];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    //将截屏图片保存在相册中
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}

时间: 2024-08-09 14:44:14

iOS开发--截屏的相关文章

IOS开发—截屏

- (void)actionShot:(UIButton *)sender{ //可以隐藏按钮,渲染完后显示回来 self.buttonShot.hidden =YES; //创建图形上下文 UIGraphicsBeginImageContextWithOptions(CGSizeMake(self.view.frame.size.width,self.view.frame.size.height),NO, 0); //获取图形上下文并将当前屏幕渲染到图形上下文上 AppDelegate *de

IOS手机截屏

IOS手机截屏 主要步骤 1.创建一个图形上下文      2.将屏幕绘制到其中 3.保存图片到相册       4.关闭图形上下文 IOS手机截屏 具体实现 - (IBAction)truncation:(UIButton *)sender { // 延迟2 秒之后再截屏    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

iOS应用截屏

iPhone自从推出后就自带了截屏功能,简单而易用,所以应用就没什么截屏的需求了,不过有些时候我们还是会遇到这个需求.比如,我们开发了一个播放器,用openGL进行video render,此时直接截屏有可能有OSD叠加内容,所以希望能截完全是视频的帧,这时就需要应用自己来实现了. 从应用角度看,虽说都是截屏,但用不用openGL是不同的,因为openGL是直接写GPU frame buffer的,如果我们是直接用UIController来用做的界面: [objc] view plaincopy

ios 代码截屏模糊问题解决办法

我们常用的截图方法如下所示: //尺寸是按照 UIGraphicsBeginImageContext(CGSizeMake(100,100 )); //currentView 当前的view 创建一个基于位图的图形上下文并指定大小为 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//renderInContext呈现接受者及其子范围到指定的上下文 UIImage *viewImage = UIGraphicsGet

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

小胖说事22-----iOS开发技巧之取消键盘响应和截屏功能

1.UILable内容模糊 在非Retina的iPad mini 的屏幕上,一个UILable的frame的origin值如果是有小数位(如0.5),就会造成显示模糊,所以最好还是用整数值的origin. 2.取消键盘响应 取消键盘响应事件,一般都会用到resignFirstResponder,但是还有三种方法可以取消键盘的响应. 第一种:重载UIViewcontroller中的touchesBegin方法,然后在里边执行 [self.view endEditing:YES]:这样单击UIVie

iOS开发UI篇—Quartz2D使用(截屏)

iOS开发UI篇—Quartz2D使用(截屏) 一.简单说明 在程序开发中,有时候需要截取屏幕上的某一块内容,比如捕鱼达人游戏.如图: 完成截屏功能的核心代码:- (void)renderInContext:(CGContextRef)ctx;调用某个view的layer的renderInContext:方法即可 二.代码示例 storyboard界面搭建: 代码: 1 // 2 // YYViewController.m 3 // 01-截屏 4 // 5 // Created by appl

iOS开发-检测用户截屏, 并获取所截图片

微信可以检测到用户截屏行为(Home + Power),并在稍后点击附加功能按钮时询问用户是否要发送刚才截屏的图片,这个用户体验非常好.于是乎, 我也想着实现这个功能. 在iOS7之前, 如果用户截屏,系统会自动取消屏幕上的所有 touch 事件,(使用 touchesCancelled:withEvent: 这个方法)那么我们就可以检测这个方法的调用,然后加载本地最新图片再加以判断来实现我们的目的.但在 iOS 7 之后,截屏不再会取消屏幕的 touch 事件,所以导致了 Snapchat 和

在iOS开发的Quartz2D使用中实现图片剪切和截屏功能

原文  http://www.jb51.net/article/75671.htm 图片剪切一.使用Quartz2D完成图片剪切1.把图片显示在自定义的view中先把图片绘制到view上.按照原始大小,把图片绘制到一个点上.代码: 复制代码代码如下: - (void)drawRect:(CGRect)rect{    UIImage *image2=[UIImage imageNamed:@"me"];    [image2 drawAtPoint:CGPointMake(100, 1