XMG Quartz2D 屏幕截屏操作

本文介绍如何在iOS应用中创建位图上下文并利用UIGraphicsBeginImageContextWithOptions进行截图,然后通过UIImagePNGRepresentation将截图转化为PNG格式的数据,并最终保存到本地文件系统。

 //创建位图上下文

    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0);

    //获取位图上下文

    CGContextRef context=UIGraphicsGetCurrentContext();

    //把当前控制器的viewlayer渲染到上下文

    [self.view.layer renderInContext:context]; //图层只能渲染,不能绘制

    

    //存入相册

//    UIImageWriteToSavedPhotosAlbum(<#UIImage * _Nonnull image#>, <#id  _Nullable completionTarget#>, <#SEL  _Nullable completionSelector#>, <#void * _Nullable contextInfo#>)

    

    UIImage*image=UIGraphicsGetImageFromCurrentImageContext();

    //Imagedata 首先要思考生成什么格式的图片.png,jpg    compressionQuality:图片质量

    /**

     *  jpg 一般用来压缩图片

        一般上传服务器的时候需要压缩图片。因为如果图片不压缩的话,质量非常大。这样的话 传输的话 比较耗时。

        而且如果每个用户都是保持原质量上传的话。服务器的压力就会特别大

     *

    另外一种压缩方式      base64压缩

     */

    

    NSData*data=  UIImagePNGRepresentation(image);

    //png写入文件

    [data writeToFile:@"/Users/macmini/Desktop/SVN/image.png" atomically:YES];

    

    //关闭上下文

    UIGraphicsEndImageContext();








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值