Программа захвата экрана в Mac OS X Lion, предпочтительно переносимая на других ОС - PullRequest
3 голосов
/ 19 октября 2011

Мне нужно разработать программу захвата экрана, которая работает на 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 также хорошо.
Спасибо заранее.

Ответы [ 2 ]

4 голосов
/ 19 октября 2011

Для Java см. Robot.createScreenCapture (Rectangle) . Обратите внимание, что Robot обычно также создает черное изображение экрана для приложений. которые непосредственно контролируют область экрана (например, во многих играх).

1 голос
/ 19 октября 2011

Лучше всего было бы использовать API для конкретной платформы для фактического захвата изображения, в то время как остальная часть вашего приложения остается переносимой. Для OS X Apple фактически предоставляет пример кода о том, как это сделать, и ваш код, вероятно, будет работать под X11.

...