设为首页 加入收藏

TOP

截取屏幕并且保存到相册
2015-07-20 17:37:07 来源: 作者: 【 】 浏览:3
Tags:截取 屏幕 并且 保存 相册
- (void)viewDidLoad
{
    [super viewDidLoad];
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd];
    btn.center = CGPointMake(100, 200);
    [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    
    myview = [[UIImageView alloc]initWithFrame:CGRectMake(10, 30, 300, 200)];
    [self.view addSubview:myview];
    
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(20, 40, 280, 30)];
    label.text = @"我是黄成都,这是我的截屏保存演练";
    [self.view addSubview:label];
}

-(void)btnClick
{
    UIImage *image = [self makeImageWithView:self.view];
    myview.image = image;
    
    [self saveImageToPhotos:image];
}

//截屏
- (UIImage *)makeImageWithView:(UIView *)view
{
    CGSize s = view.bounds.size;
    // 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了,关键就是第三个参数。
    
//    float scale = [[UIScreenmainScreen] scale];//得到设备的分辨率
//    scale = 1; 的时候是代表当前设备是320*480的分辨率(就是iphone4之前的设备)
//    scale = 2; 的时候是代表分辨率为640*960的分辨率
    NSLog(@"%f",[UIScreen mainScreen].scale);
    //绘图
    UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale);
    //渲染
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    //生产图片
    UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

//保存图片到相框
- (void)saveImageToPhotos:(UIImage *)savedImage

{
    
//    image
//    要保存到用户设备中的图片
//    completionTarget
//    当保存完成后,回调方法所在的对象
//    completionSelector
//    当保存完成后,所调用的回调方法。 形式如下:
//    - (void) image: (UIImage *) image
//didFinishSavingWithError: (NSError *) error
//contextInfo: (void *) contextInfo;
//    contextInfo
//    可选的参数,保存了一个指向context数据的指针,它将传递给回调方法。
    UIImageWriteToSavedPhotosAlbum(savedImage,self, @selector(image:didFinishSavingWithError:contextInfo:),NULL);
    
}

- (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo

{
    
    NSString *msg = nil ;
    
    if(error != NULL){
        
        msg = @"保存图片失败" ;
        
    }else{
        
        msg = @"保存图片成功" ;
        
    }
    NSLog(@"%@", msg);
    
}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU-4419-Colourful Rectangle(线.. 下一篇UILabel类的用法以及实例化对象的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)