PathResourceConverter

Inheritance: java.lang.Object

public final class PathResourceConverter

PathResource 转换为 GraphicsPath 并相互转换。

方法

方法描述
toGraphicsPath(PathResource[] pathResources, Size imageSize)将路径资源转换为 GraphicsPath 实例。
fromGraphicsPath(GraphicsPath graphicsPath, Size imageSize)GraphicsPath 实例转换为路径资源。

Example: Create Graphics Path from Path Resources in TIFF image.

try (TiffImage image = (TiffImage)Image.load("Bottle.tif"))
{
    // 使用来自 TIFF 图像的 PathResources 创建 GraphicsPath
    GraphicsPath graphicsPath = PathResourceConverter.toGraphicsPath(
            image.getActiveFrame().getPathResources().toArray(new PathResource[0]), 
            image.getActiveFrame().getSize());
    Graphics graphics = new Graphics(image);

    // 绘制红色线条并保存图像
    graphics.drawPath(new Pen(Color.getRed(), 10), graphicsPath);
    image.save("BottleWithRedBorder.tif");
}

Example: Create Path Resources using Graphics Path.

static void main()
{
    try (TiffImage image = (TiffImage)Image.load("Bottle.tif"))
    {
        // 为 GraphicsPath 创建矩形 Figure
        Figure figure = new Figure();
        figure.addShape(createBezierShape(100f, 100f, 500f, 100f, 500f, 1000f, 100f, 1000f));

        // 使用我们的 Figure 创建 GraphicsPath
        GraphicsPath graphicsPath = new GraphicsPath();
        graphicsPath.addFigure(figure);

        // 使用 GraphicsPath 设置 PathResources
        PathResource[] pathResource = PathResourceConverter.fromGraphicsPath(graphicsPath, image.getSize());
        image.getActiveFrame().setPathResources(Arrays.asList(pathResource));

        // 保存图像
        image.save("BottleWithRectanglePath.tif");
    }
}

private static BezierShape createBezierShape(float ... coordinates)
{
    PointF[] bezierPoints = coordinatesToBezierPoints(coordinates);
    return new BezierShape(bezierPoints, true);
}

private static PointF[] coordinatesToBezierPoints(float[] coordinates)
{
    PointF[] bezierPoints = new PointF[3 * coordinates.length / 2];
    int i = 0;
    for (int coordinateIndex = 0; coordinateIndex < coordinates.length - 1; coordinateIndex += 2)
        for (int index = 0; index < 3; index++)
        {
            bezierPoints[i++] = new PointF(coordinates[coordinateIndex], coordinates[coordinateIndex + 1]);
        }
                
    return bezierPoints;
}

toGraphicsPath(PathResource[] pathResources, Size imageSize)

public static GraphicsPath toGraphicsPath(PathResource[] pathResources, Size imageSize)

将路径资源转换为 GraphicsPath 实例。

Parameters:

参数类型描述
pathResourcesPathResource[]路径资源。
imageSizeSize图像的大小。

Returns: GraphicsPath - The GraphicsPath instance.

fromGraphicsPath(GraphicsPath graphicsPath, Size imageSize)

public static PathResource[] fromGraphicsPath(GraphicsPath graphicsPath, Size imageSize)

GraphicsPath 实例转换为路径资源。

Parameters:

参数类型描述
graphicsPathGraphicsPath图形路径。
imageSizeSize图像的大小。

Returns: com.aspose.imaging.fileformats.tiff.pathresources.PathResource[] - 路径资源。