导出图像的一部分

如何导出图像的一部分

问题: 如何导出图像的一部分 (CADNET-504)。

提示: 要做到这一点,您可以使用 RenderPartOfImage 方法,该方法用于查找活动视口并替换它。

示例:

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