- 題名: pictureBox.Imageをクリップボードへ転送
- 日時: 2004/06/01 14:31:26
- ID: 4236
- この記事の返信元:
- (なし)
- この記事への返信:
- [4316] Re[1]: pictureBox.Imageをクリップボードへ転送 2004/06/07 4:24:38
- ツリーを表示
■No4316に返信(管理人さんの記事)
>> Clipboard.SetDataObject(pictureBox1.Image,true);
>>のようにしてpictureBoxのImageをクリップボードへ転送しているのですが
>>pictureBoxのImageが透明色でクリップボードへ転送すると
>>クリップボードでは本来透明色であるはずのものが青色になってしまいます。
>
> 本当に青色になっているか確認してください。アプリケーションを使ってクリップボードから取り出した時、背景色が青だっただけかもしれません。もし間違いなければ、お書きになったコードを教えてください。
ご回答ありがとうございます
コードは以下の通りになります
//フォームのLoadイベントハンドラ
private void Form5_Load(object sender, System.EventArgs e)
{
//150×150の大きさのイメージをImageプロパティに設定する
pictureBox1.Image = new Bitmap(150, 150);
}
private void button1_Click(object sender, System.EventArgs e)
{
//Imageプロパティに設定されているイメージのGraphicsオブジェクトを取得
Graphics g = Graphics.FromImage(pictureBox1.Image);
//イメージに描画する
//楕円を描画
g.DrawEllipse(Pens.Red,10, 10, 100, 100);
//背景が青色になってしまっているため長方形を描く
g.FillRectangle(Brushes.Transparent,
10, 10, 100, 100);
//Graphicsを破棄する
g.Dispose();
//pictureBoxを再描画する
pictureBox1.Invalidate();
}
//クリップボードにコピー
private void button2_Click(object sender, System.EventArgs e)
{
Clipboard.SetDataObject(pictureBox1.Image, true);
}
このようにしてクリップブックを見てみると画像の通りです。
WORDや他のソフトに貼り付けても同じです。
ちなみに関係ないかもしれませんがWinXp proを使っております。
コードに誤りがあるのでしょうか?それとも他の設定なのでしょうか?
皆目検討がつきません。宜しくお願い致します。
分類:[.NET]
いつも勉強させてもらっています。
実は
Clipboard.SetDataObject(pictureBox1.Image,true);
のようにしてpictureBoxのImageをクリップボードへ転送しているのですが
pictureBoxのImageが透明色でクリップボードへ転送すると
クリップボードでは本来透明色であるはずのものが青色になってしまいます。
MakeTransparentを使って透明色の指定をしても結果は同じでした。
何か理由でもあるのでしょうか?
教えて頂ければ幸いです。