2013-02-14 3 views
0

C#에서는 그다지 깊은 지식이 없습니다. TeeChart를 사용하여 차트를 그립니다. .jpg, .bmp e.t.c에 차트의 이미지를 저장할 수 있습니다. 내가해야 할 일은 이미지 정보의 일부를 잘라내어 픽셀 정보 나 다른 것들을 변경하지 않고 나머지를 저장하고 싶다는 것입니다. enter image description here일부 부분을 자르는 방법 TeeChart image

블록 상자 부분에 클립으로 넣고 싶습니다. 나머지 그래프는 그대로 있어야합니다. 동일한 방법으로 내가 원하는 경우 또한 끝 부분 그래프를 클립 수 있습니다. 이미지의 픽셀이나 높이에는 변화가 없어야합니다. 나머지 이미지는 전체 그래프를 포함해야합니다. 가능한가? 아무도 나를 어떻게 도와 줄 수 있을까.

답변

0

tChart1.Chart.ChartRect에서 차트 그리기 영역 좌표를 가져올 수 있습니다. 다음은 차트 범례를 이미지로 클리핑하는 예제입니다.

public Form1() 
{ 
    InitializeComponent(); 
    InitializeChart(); 
} 

private Bitmap chartBmp; 

private void InitializeChart() 
{ 
    tChart1.Series.Add(new Steema.TeeChart.Styles.Bar()).FillSampleValues(); 

    chartBmp = tChart1.Bitmap; 

    tChart1.GetLegendRect += tChart1_GetLegendRect; 
} 

void tChart1_GetLegendRect(object sender, Steema.TeeChart.GetLegendRectEventArgs e) 
{ 
    Rectangle cropRect = e.Rectangle; 
    Bitmap legendImg = new Bitmap(cropRect.Width, cropRect.Height); 

    using (Graphics g = Graphics.FromImage(legendImg)) 
    { 
    g.DrawImage(chartBmp, new Rectangle(0, 0, legendImg.Width, legendImg.Height), 
        cropRect, 
        GraphicsUnit.Pixel); 
    } 

    legendImg.Save(@"c:\temp\legend.png"); 
} 
+0

예제 코드를 이용해 주셔서 감사합니다. – PRV

0
var destBitmap = sourceBitmap.Clone(new Rect(0, 0, 100, 200), sourceBitmap.PixelFormat); 
+0

이 개념에 대해 약간 설명해 주시겠습니까? 버튼 클릭과이 줄 "mainTChart.Export.Image.Bitmap.Save (Application.StartupPath +"\\ chart.bmp ");"를 사용하여 이미지를 저장하기 때문에. 저장 버튼을 클릭하기 전에 이미지를 자르고 싶습니다. – PRV

+0

@ramjaya 그냥 시도해보세요. 내 코드에서'sourceBitmap'은'mainTChart.Export.Image.Bitmap'입니다. – CodeCaster

+0

아니 작동하지 않습니다. 나는이 개념을 혼란스럽게 생각한다. – PRV

관련 문제