2

.net 用の Microsoft チャート コントロール (.png 画像の作成用) によって作成された画像の画像解像度 (DPI) を定義するにはどうすればよいですか。

チャート コントロールの winforms バージョンにはChart.RenderingDpi[X|Y]-プロパティがありますが、asp.net コントロールの場合、そのようなプロパティが見つかりません。

誰かがこれを行うための解決策に私を導くことができますか?

更新
解決策を探しているときに、チャート コントロールに Paint メソッドがあることがわかりました。これにより、他の DPI 設定で画像を作成することができました。これが正しい方法かどうかはわかりませんが、結果は悪くないようです。コードを回答として投稿しました。誰かがよりきちんとした解決策を持っている場合は、私に知らせてください。

4

2 に答える 2

5

ここで私が見つけた解決策は、良い結果をもたらします。

Bitmap bmp = new Bitmap(size.Width, size.Height);
bmp.SetResolution(resX,resY);
using (Graphics g = Graphics.FromImage(bmp)) {
     chart.Paint(g,new Rectangle(new Point(0,0),GetSizeOrDefault(context)));
}
于 2011-07-28T12:49:12.847 に答える
0

質問を「迷惑なjpegラスターアーティファクトを回避する方法」と言い換えると、GetBytesメソッドを使用して私のものをpngとして出力します。次に、コンストラクターを使用して高さ/幅を設定します。

Chart chart = new Chart(width: 1200, height: 600, theme: ChartTheme.Blue);
...
chart.GetBytes("png");

興味があれば、.net MVC拡張メソッドでこのように使用し、base64で画像にエンコードします

return "data:image/png;base64," + System.Convert.ToBase64String(chart.GetBytes("png"));
于 2013-02-04T17:57:15.827 に答える