如何使用iOS上的代码截取屏幕截图?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用iOS上的代码截取屏幕截图?相关的知识,希望对你有一定的参考价值。
如何以编程方式截取屏幕截图?
答案
你可以使用UIGraphicsBeginImageContext
来达到这个目的。
例如 :
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0);
[self.myView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData*theImageData = UIImageJPEGRepresentation(theImage, 1.0 ); //you can use PNG too
[theImageData writeToFile:@"example.jpeg" atomically:YES];
这里
1.首先,我采用图像上下文,我已经将它作为webview视频的myView
给出,你可以提供任何你想要的东西。这将获取可在屏幕上看到的webview图像。
2使用UIGraphicsGetImageFromCurrentImageContext()
我将webview的屏幕截图转换为图像。
3.通过使用UIGraphicsEndImageContext()
,我要求它结束背景。
我将图像保存到NSData
,因为我必须邮寄截图。如果它用于发送或保存,保持在NSData
似乎是一个很好的选择。
编辑:要将其添加到相机胶卷,您需要写:
UIImageWriteToSavedPhotosAlbum(theImage,nil,NULL,NULL);
之后的UIGraphicsEndImageContext();
另一答案
看看这个answer.It也照顾视网膜显示。
实际上要解释这个过程,
- 选择图像上下文大小(可能是您需要屏幕截图的图层大小)
- 在创建的上下文中渲染要截屏的图层
- 从上下文中获取图像,您就完成了!
以上是关于如何使用iOS上的代码截取屏幕截图?的主要内容,如果未能解决你的问题,请参考以下文章
iOS,如何知道照片是不是是用户截取的屏幕截图?如何删除照片中的照片?
以编程方式截取 iOS 中另一个应用程序的整个可滚动区域的屏幕截图