如何使用iOS上的代码截取屏幕截图?

时间:2012-04-13 12:33:30

标签: ios uiimage screenshot

如何以编程方式截取屏幕截图?

2 个答案:

答案 0 :(得分:14)

您可以将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。首先我拍摄图片上下文,我已将其作为网页浏览myView,您可以提供您想要的任何内容。这将获取可在屏幕上看到的webview图像。

2 使用UIGraphicsGetImageFromCurrentImageContext()我将网页浏览的屏幕截图转换为图片。

3。使用UIGraphicsEndImageContext()我要求它结束上下文。

4. 我将图片保存到NSData,因为我必须邮寄截图。如果它用于发送或保存,那么保留在NSData似乎是个不错的选择。

编辑:要将其添加到相机胶卷,您需要写:

UIImageWriteToSavedPhotosAlbum(theImage,nil,NULL,NULL);

之后

UIGraphicsEndImageContext();

答案 1 :(得分:1)

看看这个answer。它还负责视网膜显示。

实际上是为了解释这个过程,

  • 选择图像上下文大小(可能是您需要屏幕截图的图层大小)
  • 在创建的上下文中渲染要截屏的图层
  • 从上下文中获取图像,您就完成了!