|
.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ファイルが作成される。
![]() ![]() ![]() |
| 上記サンプル・コードにより作成される3つの画像ファイル |
なお、DrawToBitmapメソッドにはいくつかの制限がある。詳しくはクラス・ライブラリ・リファレンスの「Control.DrawToBitmap メソッド」を参照してほしい。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Windowsフォーム 処理対象:コントロール 使用ライブラリ:Controlコントロール(System.Windows.Forms名前空間) 使用ライブラリ:Bitmapクラス(System.Drawing名前空間) 関連TIPS:画像をファイルに保存するには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -






