屏幕截屏

屏幕截屏

  • 有些时候需要截取屏幕上的某一块内容
  • 核心代码
-(void)renderInContext:(CGContextRef)ctx;

渲染
调用某个view的layer的renderInContext:方法即可

Eg:

//1.开启一个位图上下文(跟当前控制器View一样大小的尺寸)

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

//吧控制器的View绘制到上下文当中
//2.想要吧UIView上面的东西给绘制到上下文中,必须得使用渲染的方法

//获取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//因为控制器上面的所有内容都是在layer上面,所以将layer渲染到ctx上下文中
[self.view.layer renderInContext:ctx];

//3.从上下文当中生成一张图片

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

//4.关闭上下文

UIGraphicsEndImageContext();

//把生成的图片写入到桌面(文件方式进行传输:二进制流NSData)
//5.吧图片转换成二进制流NSData

NSData *data = UIImagePNGRepresentation(newImage);

//6.将图片显示在桌面(写入文件)

[data writeToFile:@"<全路径>" atomically:YES];
  • 注意:PNG格式的图片自动是质量最高的,JPE格式的图片需要在方法中选定质量
NSData *data = UIImageJPERepresentation(newImage,1);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iOS开发疯狂者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值