2011-07-28 4 views
2

.net의 Microsoft 차트 컨트롤에서 만든 이미지의 DPI (이미지 해상도)를 정의하는 방법은 무엇입니까? 이미지).Microsoft Chart Control 생성 된 해상도 (DPI)를 asp.net에서 생성 된 이미지

차트 컨트롤의 winforms 버전은 Chart.RenderingDpi[X|Y]- 속성을 갖지만 asp.net 컨트롤의 경우 해당 속성을 찾을 수 없습니다.

누군가 나를이 일을위한 해결책으로 이끌 수 있습니까?

솔루션을 검색하는 동안 업데이트
, 나는 차트 컨트롤이 페인트 방법을 가지고 보았다. 이것으로 다른 DPI 설정으로 이미지를 만들 수있었습니다. 나는 이것이 올바른 방법인지 잘 모르겠지만 그 결과는 나에게 나쁘지 않다. 코드를 답으로 게시했습니다. 누구보다 깔끔한 해결책이 있다면 알려 주시기 바랍니다.

답변

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

이 같은 질문을 바꿔 경우 GetBytes 방법을 사용하여 PNG로 I 출력 내 "어떻게 주위 성가신 JPEG 래스터 아티팩트를 얻을 수 있습니다." 그런 다음 생성자를 사용하여 높이/너비를 설정합니다.

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

당신은 호기심이 있다면 나는 이미지

return "data:image/png;base64," + System.Convert.ToBase64String(chart.GetBytes("png")); 
에 .NET MVC 확장 방법 및 기본 64 인코딩에서이 방법을 사용