目次

C# スクリーンキャプチャプログラム

コントロールのイメージをビットマップにコピーする (DrawToBitmapを用いたスクリーンキャプチャー)

目次

コントロールの外観をビットマップにコピーするコードを紹介します。

UI

以下のUIを作成します。
コントロールのイメージをビットマップにコピーする (DrawToBitmapを用いたスクリーンキャプチャー):画像1

コード

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ControlCapt
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      Bitmap bmp = new Bitmap(this.Width, this.Height);
      this.DrawToBitmap(bmp, new Rectangle(0,0,this.Width,this.Height));
      bmp.Save("capture.bmp");
    }

    private void button2_Click(object sender, EventArgs e)
    {
      Bitmap bmp = new Bitmap(textBox1.Width, textBox1.Height);
      textBox1.DrawToBitmap(bmp, new Rectangle(0, 0, textBox1.Width, textBox1.Height));
      bmp.Save("capture.bmp");
    }
  }
}

解説

Button1
Bitmap bmp = new Bitmap(this.Width, this.Height);
this.DrawToBitmap(bmp, new Rectangle(0,0,this.Width,this.Height));
bmp.Save("capture.bmp");

ビットマップを作成します。ビットマップのサイズはキャプチャを取得するフォームの幅と高さにします。ビットマップ作成後、フォームのDrawToBitmapメソッドを呼び出しフォームの描画イメージをビットマップに描画します。描画範囲はフォームの幅と高さの範囲とします。画像描画後ビットマップのSaveメソッドを呼び出しファイルに保存します。

Button2
Bitmap bmp = new Bitmap(textBox1.Width, textBox1.Height);
textBox1.DrawToBitmap(bmp, new Rectangle(0, 0, textBox1.Width, textBox1.Height));
bmp.Save("capture.bmp");

Button2もButton1と同様の手順でビットマップを保存します。違いはフォームのDrawToBitmapではなく、textBox1のDrawToBitmapを呼び出す点です。ビットマップのサイズや描画範囲もtextBox1の幅と高さにします。

実行結果

アプリケーションを実行します。下図のフォームが表示されます。
コントロールのイメージをビットマップにコピーする (DrawToBitmapを用いたスクリーンキャプチャー):画像2

テキストボックスに文字を入力します。入力後Button1またはButton2をクリックします。
コントロールのイメージをビットマップにコピーする (DrawToBitmapを用いたスクリーンキャプチャー):画像3

Button1をクリックすると実行ファイルと同じディレクトリに"capture.bmp"ファイルが作成されます。ファイルの画像は下図になります。フォーム全体のキャプチャー画像が保存されています。
コントロールのイメージをビットマップにコピーする (DrawToBitmapを用いたスクリーンキャプチャー):画像4

Button2をクリックした場合も実行ファイルと同じディレクトリに"capture.bmp"が作成されます。ファイルの画像は下図になります。テキストボックスのキャプチャー画像が保存されています。
コントロールのイメージをビットマップにコピーする (DrawToBitmapを用いたスクリーンキャプチャー):画像5

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2012-04-30
Copyright © 1995–2025 iPentec all rights reserverd.