如何在asp.net中为Microsoft图表控件生成的图像设置分辨率(DPI)

如何在asp.net中为Microsoft图表控件生成的图像设置分辨率(DPI),.net,system.drawing,microsoft-chart-controls,.net,System.drawing,Microsoft Chart Controls,如何在DPI中为microsoft chart controls for.net创建的图像定义图像分辨率,以创建.png图像 图表控件的winforms版本具有该属性,但是对于asp.net控件,我找不到这样的属性 有人能给我一个解决办法吗 更新 在搜索解决方案的过程中,我看到图表控件有一个绘制方法。有了这个,我可以用其他DPI设置创建图像。我不确定这是否是正确的方法,但结果在我看来并不坏。我把代码贴出来作为答案。如果有人有更简洁的解决方案,请告诉我。这里是我发现的一个可以产生良好效果的解决方案

如何在DPI中为microsoft chart controls for.net创建的图像定义图像分辨率,以创建.png图像

图表控件的winforms版本具有该属性,但是对于asp.net控件,我找不到这样的属性

有人能给我一个解决办法吗

更新
在搜索解决方案的过程中,我看到图表控件有一个绘制方法。有了这个,我可以用其他DPI设置创建图像。我不确定这是否是正确的方法,但结果在我看来并不坏。我把代码贴出来作为答案。如果有人有更简洁的解决方案,请告诉我。

这里是我发现的一个可以产生良好效果的解决方案

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

如果你把你的问题重新表述为如何避开恼人的jpeg光栅工件,我会使用GetBytes方法将我的输出为png。然后我使用构造函数设置高度/宽度

Chart chart = new Chart(width: 1200, height: 600, theme: ChartTheme.Blue);
...
chart.GetBytes("png");
如果你好奇的话,我在.NETMVC扩展方法中这样使用它,并将BASE64编码到一个图像中

return "data:image/png;base64," + System.Convert.ToBase64String(chart.GetBytes("png"));