我需要开发一个在Mac OS X Lion上运行的屏幕捕获程序。我尝试使用mono
和GTK#
制作屏幕截图,但屏幕截图为黑色
Gdk.Window window = Gdk.Global.DefaultRootWindow;
if (window!=null)
{
Gdk.Pixbuf pixBuf = new Gdk.Pixbuf(Gdk.Colorspace.Rgb, false, 8,
window.Screen.Width, window.Screen.Height);
pixBuf.GetFromDrawable(window, Gdk.Colormap.System, 0, 0, 0, 0,
window.Screen.Width, window.Screen.Height);
pixBuf.ScaleSimple(400, 300, Gdk.InterpType.Bilinear);
pixBuf.Save("screenshot0.jpeg", "jpeg");
}
你能指出我正确的方向吗?最好使用mono
,但如果是java
,c++
或objective c
也是好的。
提前谢谢。
答案 0 :(得分:4)
对于Java,请参阅Robot.createScreenCapture(Rectangle)。但请注意,Robot
通常也会为应用生成黑屏图像。直接控制屏幕区域(例如许多游戏)。
答案 1 :(得分:0)
您最好的选择可能是使用特定于平台的API来进行实际的图像捕获,而您的应用程序的其余部分仍然可移植。对于OS X,Apple实际上提供了sample code如何执行此操作,并且您的代码可能在X11下工作。