Export part of the image

How to export part of the image

Issue: How to export part of the image (CADNET-504).

Tips: To do this, you can use the RenderPartOfImage method, which searches for the active viewport and replaces it.

Example:

private static void RenderPartOfImage(PointF topLeft, double tileWidth, double tileHeight, string outputFileName)
{
CadVportTableObject newView = new CadVportTableObject();
System.Console.WriteLine("Top left = " + topLeft.X + " " + topLeft.Y + " width= " + tileWidth + " height= " + tileHeight);
// note: exactly such table name is required for active view
newView.Name = "*Active";
newView.CenterPoint.X = topLeft.X + (tileWidth / 2);
newView.CenterPoint.Y = topLeft.Y - (tileHeight / 2);
newView.ViewHeight.Value = tileHeight;
newView.ViewAspectRatio.Value = tileWidth / tileHeight;
// search for active viewport and replace it
for (int i = 0; i < cadImage.ViewPorts.Count; i++)
{
CadVportTableObject currentView = (CadVportTableObject)(cadImage.ViewPorts[i]);
if ((currentView.TableName == null && cadImage.ViewPorts.Count == 1) ||
string.Equals(currentView.TableName.ToLowerInvariant(), "*active"))
{
cadImage.ViewPorts[i] = newView;
break;
}
}
PngOptions pngOptions = GetSaveOptions(true);
pngOptions.VectorRasterizationOptions.PageHeight = (float)tileHeight * 100f;
pngOptions.VectorRasterizationOptions.PageWidth = (float)tileWidth * 100f;
cadImage.Save(outputFileName, pngOptions);
}