我对c#没有太多的深入了解。我正在使用TeeChart绘制图表。我能够以.jpg,.bmp e.t.c保存图表的图像。我需要做的是在保存之前我想要剪切图像的某些部分然后保存休息,而不改变像素信息或任何其他东西。
我想在块框部分内部剪辑。剩下的图表应该是原样。以同样的方式,我也能够剪辑结束部分图表,如果我想。图像的像素或高度应该没有变化。剩下的图像应该覆盖整个图表。可能吗。任何人都可以帮助我,如何做到这一点。
答案 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");
}