C#でデスクトップ画面をキャプチャする
chakemiです。
本日は、C#でデスクトップの画面をキャプチャしてみようと思います。
まずは、簡単に、.NET FrameworkのGraphics.CopyFromScreenメソッドを使ってみます。
開発環境:
WindowsXP SP3
VisualC#2010Express
はじめにScreenクラスを使用して、画面のサイズを取得してBitmapオブジェクトを用意します。
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Bitmapクラスからは、Screenからコピーするメソッドが存在しないため、代わりにGraphicsオブジェクトをbmpを元に生成します。
Graphics graph = Graphics.FromImage(bmp);
GraphicsクラスのCopyFromScreenメソッドを使用して、ScreenをBitmapオブジェクトに色データのビットブロック転送を行ないます。
graph.CopyFromScreen(new Point(0, 0), new Point(0, 0), bmp.Size);
第一引数に転送先の四角形の左上隅の点、第二引数に転送元の四角形の左上隅の点、第三引数に転送される領域のサイズを指定します。
転送が完了したら、不要なGraphicsオブジェクトを破棄します。
graph.Dispose();
あとは、BitmapオブジェクトをPictureBoxに描画したり、bmpファイルに保存すれば出来上がり♪
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); Graphics graph = Graphics.FromImage(bmp); graph.CopyFromScreen(new Point(0, 0), new Point(0, 0), bmp.Size); graph.Dispose(); pictureBox1.Image = bmp; bmp.Save(@"C:\test.bmp");
コメント 0