C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: pictureBoxのグラフをwordに貼り付けたい


(過去ログ 30 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■14623 / inTopicNo.1)  pictureBoxのグラフをwordに貼り付けたい
  
□投稿者/ おおかべ (1回)-(2008/02/23(Sat) 20:58:26)

分類:[C#] 

C# 始めたばかりで、全くの初心者です。
初歩的な質問でお手間をかけますが
宜しくお願いします。

pictureBox内にグラフを作成しました。
そのグラフをword(2003)の文章中に貼り付けて
使いたいのですが...

C#のformにコピー用ボタンを作成
そのボタン内に
   Clipboard.SetDataObject(pictureBox1.Image,true);
と書きました。
 
グラフ作図後、作ったコピーボタンを押した後
wordの「編集」+「形式を選択して貼り付け」をしたところ
wordに貼付けられたものの、グラフのbackcolorがまっ青に
なってしまいました。(C#のpictureBoxのBackColorは「WhiteSmoke」
に設定してます)

色々やったのですが、何故だか判りません。

解決方法をご教授下さい。
 (質問の説明がへたくそですみません)

よろしくお願いします。
引用返信 編集キー/
■14633 / inTopicNo.2)  Re[1]: pictureBoxのグラフをwordに貼り付けたい
□投稿者/ かずき (19回)-(2008/02/24(Sun) 10:16:44)
かずき さんの Web サイト
うちにはワードが無いので正確に再現できてませんが、ワードパッドを使って実験してみました。
PictureBox x1  Button x2  OpenFileDialog x1を置いたフォームで下のように書いてます。

        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = Bitmap.FromFile(openFileDialog1.FileName);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Clipboard.SetImage(pictureBox1.Image);
            Clipboard.SetDataObject(pictureBox1.Image, true);
        }

button1をクリックして画像を選択してピクチャーボックスに表示させてます。
button2でクリップボードに入れてます。
このコードだと無事ワードパッドに貼り付けることができました。


気になる所といえば…おおかべさんはピクチャーボックスにどうやって画像を表示させてますか?

引用返信 編集キー/
■14636 / inTopicNo.3)  Re[2]: pictureBoxのグラフをwordに貼り付けたい
□投稿者/ やじゅ (180回)-(2008/02/24(Sun) 14:02:02)
やじゅ さんの Web サイト
>投稿者/ おおかべ への返信
>
>グラフ作図後、作ったコピーボタンを押した後
>wordの「編集」+「形式を選択して貼り付け」をしたところ
>wordに貼付けられたものの、グラフのbackcolorがまっ青に
>なってしまいました。
>
>C#のpictureBoxのBackColorは「WhiteSmoke
>

BackColorは「WhiteSmoke」となっているので、違うかも知れませんが

下記の内容がありました。但し解決方法は不明となっています。
「pictureBoxのImageが透明色でクリップボードへ転送すると
クリップボードでは本来透明色であるはずのものが青色になってしまいます。」
pictureBox.Imageをクリップボードへ転送
http://dobon.net/vb/bbs/log3-8/4236.html
引用返信 編集キー/
■14649 / inTopicNo.4)  Re[2]: pictureBoxのグラフをwordに貼り付けたい
□投稿者/ おおかべ (2回)-(2008/02/24(Sun) 18:53:28)
No14633 (かずき さん) に返信
> うちにはワードが無いので正確に再現できてませんが、ワードパッドを使って実験してみました。
 ・・・
かずきさんありがとうございます。今後、このテクニックを参考にさせていただきます。

> 気になる所といえば…おおかべさんはピクチャーボックスにどうやって画像を表示させてますか?>
説明不足ですみません。
単純にピクチャーボックスにDrawLine、DrawEllipse等を用いてでグラフを作図しました。
その作成したオリジナルのグラフをwordの文章の中で使用するためのクリップボードを用いて
貼り付けを行おうと奮闘しています。


引用返信 編集キー/
■14650 / inTopicNo.5)  Re[3]: pictureBoxのグラフをwordに貼り付けたい
□投稿者/ おおかべ (3回)-(2008/02/24(Sun) 19:04:41)
No14636 (やじゅ さん) に返信
>
> BackColorは「WhiteSmoke」となっているので、違うかも知れませんが
>
> 下記の内容がありました。但し解決方法は不明となっています。
> 「pictureBoxのImageが透明色でクリップボードへ転送すると
> クリップボードでは本来透明色であるはずのものが青色になってしまいます。」
> pictureBox.Imageをクリップボードへ転送
> http://dobon.net/vb/bbs/log3-8/4236.html

やじゅさんありがとうございます。
上記のサイトの内容を参考にして、トライしましたがやっぱりダメでした。
何か違う方法で、wordに貼り付けた方がいいのでしょうか?               
引用返信 編集キー/
■14651 / inTopicNo.6)  Re[4]: pictureBoxのグラフをwordに貼り付けたい
□投稿者/ やじゅ (182回)-(2008/02/24(Sun) 19:41:32)
やじゅ さんの Web サイト
No14650 (おおかべ さん) に返信
> 何か違う方法で、wordに貼り付けた方がいいのでしょうか?

他のソフト(Paintなど)ではどうなっているのでしょうか?

一応、別案としては下記方法を試してみてください
1.画像としてファイル保存
2.そのファイルを読込んで再表示
3.クリップボードへ
4.Wordに貼り付け


               
引用返信 編集キー/
■14660 / inTopicNo.7)  Re[1]: pictureBoxのグラフをwordに貼り付けたい
□投稿者/ myugaru (13回)-(2008/02/25(Mon) 05:06:32)
myugaru さんの Web サイト
2008/02/25(Mon) 06:09:29 編集(投稿者)
2008/02/25(Mon) 05:08:26 編集(投稿者)
No14623 (おおかべ さん) に返信
まず3つのケースを良くお読みください。

#####ここから

1.背景がWhiteSmokeの図をクリップボードへコピーする方法
グラフを書き始めるときにあらかじめ全体をWhiteSmokeで塗りつぶします。その後グラフを書き、クリップボードへコピーします。
pictureBox1.Image = new Bitmap(150, 150);
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.Clear(Color.WhiteSmoke);
g.DrawEllipse(Pens.Red, 10, 10, 100, 100);//←グラフの例
g.Dispose();
Clipboard.SetDataObject(pictureBox1.Image, true);

2.背景が透明の図をクリップボードへコピーする方法
クリップボードは通常の方法では透明色をサポートしません。これは古来よりWindowsの問題になっております。通常じゃない方法もいくつかありますが、本筋から外れます。出来ないとご理解いただくのがいいです。私の知り合いの画像解析に長けた方がこれについてつい最近記事を書かれております。
http://blog.goo.ne.jp/junki560/e/71f8493d8c810fbcf2dded51e90ece73

3.背景が透明の図をWordへ貼り付ける方法
これは一旦pngファイルへ落としてWordの「挿入→図→ファイルから」で簡単にできます。
pictureBox1.Image = new Bitmap(150, 150);
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawEllipse(Pens.Red, 10, 10, 100, 100);//←グラフの例
g.Dispose();
pictureBox1.Image.Save("abc.png");//abc.pngができる

#####ここまで

私が想像するに背景色をWhiteSmokeにしたいのではないですか?それなら1で回答になるかと思います。
かずきさんややじゅさんは2、3あたりを踏まえて回答されているように思います。リンク先については2あたりのWindows古来の問題に触れています。2の方向に話を広げると初心者とおっしゃっているおおかべさんには少々きついものになるかと思いますが、たぶんこの話の方向じゃないですよね?どうでしょう?
さて今回のご質問を見ますとPictureBoxの背景がSmokeWhiteになると勘違いされているように思います。話のケースでは3のようなロジックになっているのではないでしょうか?PictureBoxのBackColorプロパティはImageには含まれているものではありません。あくまでFormに表示する際にPictureBoxが背景色でバックを塗りつぶすのに使っているにすぎません。
以上ご自分で上のロジックを試しにでよいので作ってみて違いなども確認の上で改めてご質問内容など整理のうえで解決に向けて参考にしてください。

引用返信 編集キー/
■14661 / inTopicNo.8)  Re[2]: pictureBoxのグラフをwordに貼り付けたい
□投稿者/ おおかべ (4回)-(2008/02/25(Mon) 07:02:27)
No14660 (myugaru さん) に返信
> 2008/02/25(Mon) 06:09:29 編集(投稿者)
> 2008/02/25(Mon) 05:08:26 編集(投稿者)
> ■No14623 (おおかべ さん) に返信
> まず3つのケースを良くお読みください。
>
> #####ここから
>
> 1.背景がWhiteSmokeの図をクリップボードへコピーする方法
> グラフを書き始めるときにあらかじめ全体をWhiteSmokeで塗りつぶします。その後グラフを書き、クリップボードへコピーします。

> 2.背景が透明の図をクリップボードへコピーする方法
> クリップボードは通常の方法では透明色をサポートしません。これは古来よりWindowsの問題になっております。

> 3.背景が透明の図をWordへ貼り付ける方法
> これは一旦pngファイルへ落としてWordの「挿入→図→ファイルから」で簡単にできます。

ありがとうございました。
myugaruさんの解決策「1」で、おおおかべの質問してた方法は解決しました。
解決策2,3についても、内容を理解できるように頑張ります。

質問掲示板の使用も初心者であり、内容説明等言葉足らずでもうしわけありませんでした。
かずきさんややじゅさんにいただいた回答もうまく理解できていなかったみたいでした。

皆様どうもありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -