PathResourceConverter

Inheritance: java.lang.Object

public final class PathResourceConverter

Converts PathResource to GraphicsPath and vice versa.

Methods

MethodDescription
toGraphicsPath(PathResource[] pathResources, Size imageSize)Converts path resources to the GraphicsPath instance.
fromGraphicsPath(GraphicsPath graphicsPath, Size imageSize)Converts the GraphicsPath instance to path resources.

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

try (TiffImage image = (TiffImage)Image.load("Bottle.tif"))
{
    // Create the GraphicsPath using PathResources from TIFF image
    GraphicsPath graphicsPath = PathResourceConverter.toGraphicsPath(
            image.getActiveFrame().getPathResources().toArray(new PathResource[0]), 
            image.getActiveFrame().getSize());
    Graphics graphics = new Graphics(image);

    // Draw red line and save the 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"))
    {
        // Create rectangular Figure for GraphicsPath
        Figure figure = new Figure();
        figure.addShape(createBezierShape(100f, 100f, 500f, 100f, 500f, 1000f, 100f, 1000f));

        // Create GraphicsPath using our Figure
        GraphicsPath graphicsPath = new GraphicsPath();
        graphicsPath.addFigure(figure);

        // Set PathResources using GraphicsPath
        PathResource[] pathResource = PathResourceConverter.fromGraphicsPath(graphicsPath, image.getSize());
        image.getActiveFrame().setPathResources(Arrays.asList(pathResource));

        // Save the image
        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)

Converts path resources to the GraphicsPath instance.

Parameters:

ParameterTypeDescription
pathResourcesPathResource[]The path resources.
imageSizeSizeSize of the image.

Returns: GraphicsPath - The GraphicsPath instance.

fromGraphicsPath(GraphicsPath graphicsPath, Size imageSize)

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

Converts the GraphicsPath instance to path resources.

Parameters:

ParameterTypeDescription
graphicsPathGraphicsPathThe graphics path.
imageSizeSizeSize of the image.

Returns: com.aspose.imaging.fileformats.tiff.pathresources.PathResource[] - The path resources.