Exportar parte de la imagen

Cómo exportar parte de la imagen

Problema: Cómo exportar parte de la imagen (CADNET-504).

Consejos: Para hacer esto, puedes usar el método RenderPartOfImage, que busca el viewport activo y lo reemplaza.

Ejemplo:

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);
}