0

我对 c# 没有那么深的了解。我正在使用 TeeChart 绘制图表。我可以将图表图像保存为 .jpg、.bmp 等格式 我需要做的是在保存之前我想剪辑图像的某些部分,然后按原样保存其余部分,而无需更改像素信息或任何其他内容。 在此处输入图像描述

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

4

2 回答 2

0
var destBitmap = sourceBitmap.Clone(new Rect(0, 0, 100, 200), sourceBitmap.PixelFormat);
于 2013-02-14T12:52:44.160 回答
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");
}
于 2013-02-14T15:09:28.410 回答