using (MemoryStream imageStream = new MemoryStream())
{
this.UltraChart1.SaveTo(imageStream, RenderingType.Image);
using (Image chartImage = Image.FromStream(imageStream))
{
Bitmap topImage = new Bitmap(chartImage.Width, chartImage.Height / 2);
Bitmap bottomImage = new Bitmap(chartImage.Width, chartImage.Height / 2);
Graphics topGraphics = Graphics.FromImage(topImage);
Graphics bottomGraphics = Graphics.FromImage(bottomImage);
int halfHeight = chartImage.Height / 2;
Rectangle destRect = new Rectangle(Point.Empty, topImage.Size);
topGraphics.DrawImage(chartImage, destRect, 0, 0, chartImage.Width, halfHeight, GraphicsUnit.Pixel);
bottomGraphics.DrawImage(chartImage, destRect, 0, halfHeight, chartImage.Width, halfHeight, GraphicsUnit.Pixel);
topImage.Save(@"C:\top.png", ImageFormat.Png);
bottomImage.Save(@"C:\bottom.png", ImageFormat.Png);
topGraphics.Dispose();
bottomGraphics.Dispose();
topImage.Dispose();
bottomImage.Dispose();
}
}