如何剪辑部分TeeChart图像

时间:2013-02-14 12:49:42

标签: c# teechart

我对c#没有太多的深入了解。我正在使用TeeChart绘制图表。我能够以.jpg,.bmp e.t.c保存图表的图像。我需要做的是在保存之前我想要剪切图像的某些部分然后保存休息,而不改变像素信息或任何其他东西。 enter image description here

我想在块框部分内部剪辑。剩下的图表应该是原样。以同样的方式,我也能够剪辑结束部分图表,如果我想。图像的像素或高度应该没有变化。剩下的图像应该覆盖整个图表。可能吗。任何人都可以帮助我,如何做到这一点。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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");
}