2015年11月25日水曜日

P003-クリップボードから画像をペースト

今日の目標→

前回のプログラム(ImageView2)に手を加え、クリップボードから画像を貼り付けられるようにする。

●プロジェクトの作成

  1. 「ImageView3」という名前で、新規プロジェクトを作る
  2. Form1.csのコードを開き、ImageView2のForm1.csからコードをコピペする
  3. コードを次のように修正する。

コードを書き終えたらさっそく実行してみよう。他のソフト上で画像の「コピー」を実行し、このプログラムの「貼り付け」メニューを選択すると、ピクチャボックスに画像が表示されるはずだ。

●要点の解説

クリップボードとの画像データのやりとりは単純だ。次の2つのメソッドを使えばいい。

  • Clipboard.SetImage() → クリップボードに画像を保存する
  • Clipboard.GetImage() → クリップボードから画像を取得する

まあ実際は、このお手軽なメソッドにも弱点があって、透過GIFや透過PNGをクリップボード経由でやりとりすると透明色が消えてしまったりする。この問題は、昔なんかして解決した記憶があるので、あとで思い出したら解決法を書いてみる。

しかし今回の追加コードのほとんどがメニュー関連の処理になってしまった。ここでは標準のMenuStripクラスじゃなくて、古くからあるMainMenuクラスを使っている。古いプログラムから取ってきたコードだけど問題なく動いてよかった。

またメニューの設定データにXMLを利用している。こういうメニューみたいな階層構造のデータは、XMLで記述するのが楽である。XMLの使い方はそのうちちゃんと説明するので、しばらくお待ちくだされ。

(実行画面が入る予定)

0 件のコメント:

コメントを投稿