|
■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);
}
}
|