Как установить разрешение (DPI) для сгенерированных изображений Microsoft Chart Control в asp.net - PullRequest
2 голосов
/ 28 июля 2011

Как определить разрешение изображения (в DPI) для изображений, созданных элементами управления диаграммы Microsoft для .net (для создания .png-изображений).

Версия winforms элемента управления построения диаграммы имеет свойство Chart.RenderingDpi [X | Y] - , однако для элемента управления asp.net я не могу найти такое свойство.

Может кто-нибудь привести меня к решению для этого?

Обновление
Во время поиска решения я увидел, что у элемента управления диаграммы есть метод Paint. Благодаря этому я смог создавать изображения с другими настройками DPI. Я не уверен, что это правильный путь, но результат выглядит неплохо для меня. Я отправил код в качестве ответа. Если у кого-нибудь есть более подходящее решение, пожалуйста, дайте мне знать.

Ответы [ 2 ]

5 голосов
/ 28 июля 2011

Вот решение, которое я нашел и которое дает хорошие результаты.

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)));
}
0 голосов
/ 04 февраля 2013

Если вы перефразируете свой вопрос как «как обойти надоедливые растровые артефакты jpeg», я выведу мой как png, используя метод GetBytes. Затем я использую конструктор для установки высоты / ширины.

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

если вам интересно, я использую его таким образом в методе расширения .net MVC, а base 64 кодирует в изображение

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