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

わんくま同盟

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

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


(過去ログ 173 を表示中)
■99541 / )  Re[3]: 透明なChartのスクリーンショットのとりかた
□投稿者/ WebSurfer (2464回)-(2022/04/22(Fri) 18:26:53)
No99540 (わぎゃん さん) に返信

> SaveImageメソッドに関してなのですが、
> 例えば、1000x1000ピクセルのチャートの画像がほしいとして、
> それと同じサイズのChartをフォーム上に配置する必要がありますか?

いえ、違います。Form に配置したら表示されてしまいますので、Chart のインスタンスは生成して
も Form には配置しません。

> フォーム上にchartを配置せずに画像を取得したいのですが。
> やはり、透明なフォーム上に貼り付けて使用すれば良いのでしょうか?

透明なフォームなど必要ありません。

chart を生成したら Chart.SaveImage で保存できます。以前作ったサンプルコードを書いておきます。


        private void SaveButton_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.Filter = "BMP形式|*.bmp|JPEG形式|*.jpeg|PNG形式|*.png";
            saveFileDialog1.FilterIndex = 2;
            saveFileDialog1.RestoreDirectory = true;

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string filename = saveFileDialog1.FileName;
                string ext = Path.GetExtension(filename).ToLower();
                ChartImageFormat format;
                if (ext == ".jpeg")
                {
                    format = ChartImageFormat.Jpeg;
                }
                else if (ext == ".png")
                {
                    format = ChartImageFormat.Png;
                }
                else if (ext == ".bmp")
                {
                    format = ChartImageFormat.Bmp;
                }
                else
                {
                    throw new InvalidOperationException();
                }
                this.chart.SaveImage(filename, format);
            }
        }

返信 編集キー/


管理者用

- Child Tree -