将iPhoneOSGameView捕获为图像

时间:2012-11-08 14:56:35

标签: opengl-es xamarin.ios drawing

我正在编写一个签名控制器,用户可以在其中写下他的签名,然后我将签名作为图像并将其保存回服务器。

我很快找到了这个优秀的样本: https://github.com/xamarin/monotouch-samples/blob/master/GLPaint-GameView/PaintingView.cs

但是我无法将绘画效果保存为图像。下面的代码只提供了一张没有实际图纸的黑色图片,那么如何将图纸的结果绘制到图像上下文中呢?

PaintingView drawingView;

...

UIGraphics.BeginImageContext(drawingView.Frame.Size); 
var ctx = UIGraphics.GetCurrentContext();
drawingView.Layer.RenderInContext(ctx);
UIImage img = UIGraphics.GetImageFromCurrentImageContext();                         
UIGraphics.EndImageContext();

2 个答案:

答案 0 :(得分:2)

使用OpenGL捕获时,可以按照此technical note中的Apple说明完成屏幕截图。

正常(非OpenGL)捕获可以在note之后完成。

答案 1 :(得分:1)

MonoTouch提供了截屏方便的方法,可以在使用UIKit或OpenGL运行时捕获屏幕内容。

UIKit应用程序

    var screenshot = UIScreen.MainScreen.Capture ();

GLKit应用程序

    var screenshot = iPhoneOSGameView.Capture ();