.NET TIPS フォームやコントロールの画像をファイルに保存するには?[2.0のみ、C#、VB]デジタルアドバンテージ 遠藤 孝信2006/06/02 |
|
|
.NET Framework 2.0ではControlクラス(System.Windows.Forms名前空間)に「DrawToBitmapメソッド」が新しく追加されている。このメソッドを使えば、Windowsフォームで使用されるコントロールのイメージ(画像)をBitmapオブジェクトに描画できる。
フォームも含め、Windowsアプリケーションで使用されるすべてのコントロールはControlクラスを継承して実装されているため、DrawToBitmapメソッドはすべてのコントロールに対して利用可能だ。従って、フォーム画面全体や、フォーム上の個々のコントロール単位にイメージをキャプチャでき、それを画像ファイルに保存することも簡単だ。
指定されたコントロールの画像をJPEGファイルとして保存するメソッド
次のメソッドは、DrawToBitmapメソッドを利用して、指定されたコントロールのイメージをJPEGファイルとして保存するものだ。
| ||
指定されたコントロールをJPEGファイルとして保存するメソッド(上:C#、下:VB) |
このSaveControlImageメソッドでは、まず指定されたコントロールと同じサイズのBitmapオブジェクト(System.Drawing名前空間)を作成し、DrawToBitmapメソッドによりコントロール全体のイメージをそのBitmapオブジェクトに描画している。
DrawToBitmapメソッドにはパラメータとして、Bitmapオブジェクトと、イメージを取得したいコントロール内の領域を示すRectangleオブジェクト(System.Drawing名前空間)を指定する。
Bitmapオブジェクトに描画された内容をファイルとして保存する方法については「TIPS:画像をファイルに保存するには?」を参照していただきたい。
次にこのSaveControlImageメソッドの利用方法について説明する。
フォームやコントロールの画像キャプチャ
例えば、Visual Studio 2005でWindowsフォームにMonthCalendarコントロールとButtonコントロールを次の画面のように配置したとしよう。
2つのコントロールを配置したWindowsフォーム |
MonthCalendarコントロールとButtonコントロールを配置している。 |
ボタンをクリックしたときにフォーム全体と2つのコントロールの画像をそれぞれファイルに保存したい場合には、次のようにして先ほどのSaveControlImageメソッドを呼び出せばよい。以下のコードは配置したボタンをダブルクリックすると作成されるClickイベント・ハンドラに記述する。
| ||
Clickイベント・ハンドラに記述するコード(上:C#、下:VB) |
ここで「this」(VBでは「Me」)はフォームを参照している。
このアプリケーションを実行し、ボタンをクリックすると次のような画像のJPEGファイルが作成される。
form.jpg button.jpg month.jpg |
上記サンプル・コードにより作成される3つの画像ファイル |
なお、DrawToBitmapメソッドにはいくつかの制限がある。詳しくはクラス・ライブラリ・リファレンスの「Control.DrawToBitmap メソッド」を参照してほしい。
利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Windowsフォーム 処理対象:コントロール 使用ライブラリ:Controlコントロール(System.Windows.Forms名前空間) 使用ライブラリ:Bitmapクラス(System.Drawing名前空間) 関連TIPS:画像をファイルに保存するには? |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|