SvgOptions

Inheritance: java.lang.Object, com.aspose.imaging.DisposableObject, com.aspose.imaging.ImageOptionsBase

All Implemented Interfaces: com.aspose.fileformats.core.imageoptions.ICompressOptions

public class SvgOptions extends ImageOptionsBase implements ICompressOptions

Create Scalar Vector Graphics (SVG) image files with our API, utilizing versatile options for color types and compression levels. Seamlessly customize your SVG images with precision, ensuring optimal quality and compatibility for your design needs.

Constructors

ConstructorDescription
SvgOptions()

Methods

MethodDescription
getColorType()Gets or sets the color type for SVG image.
setColorType(int value)Gets or sets the color type for SVG image.
getTextAsShapes()Gets a value indicating whether text must be rendered as shapes.
setTextAsShapes(boolean value)Sets a value indicating whether text must be rendered as shapes.
getCallback()Gets the storing strategy for embedded resources of SvgImage such as fonts, nested rasters.
setCallback(ISvgResourceKeeperCallback value)Sets the storing strategy for embedded resources of SvgImage such as fonts, nested rasters.
getCompress()Gets a value indicating whether the output image must to be compressed.
setCompress(boolean value)Sets a value indicating whether the output image must to be compressed.

Example: The following example shows how to convert a multipage vector image to SVG format in general way without referencing to a particular image type.

String dir = "C:\\aspose.imaging\\net\\misc\\ImagingReleaseQATester\\Tests\\testdata\\2548";
String inputFilePath = (dir + "Multipage.cdr");
String outputFilePath = (dir + "Multipage.cdr.svg");

com.aspose.imaging.ImageOptionsBase exportOptions = new com.aspose.imaging.imageoptions.SvgOptions();

try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(inputFilePath))
{
    exportOptions.setMultiPageOptions(null);

    // Export only first two pages. In fact, only one page will be converted because SVG is not a multi-page format.
    com.aspose.imaging.IMultipageImage multipageImage = (image instanceof com.aspose.imaging.IMultipageImage) ? (com.aspose.imaging.IMultipageImage) image : null;
    if (multipageImage != null && (multipageImage.getPages() != null && multipageImage.getPageCount() > 2))
    {
        exportOptions.setMultiPageOptions(new com.aspose.imaging.imageoptions.MultiPageOptions(new com.aspose.imaging.IntRange(0, 2)));
    }

    if (image instanceof com.aspose.imaging.VectorImage)
    {
        com.aspose.imaging.imageoptions.VectorRasterizationOptions defaultOptions = (com.aspose.imaging.imageoptions.VectorRasterizationOptions) image.getDefaultOptions(new Object[]{Color.getWhite(), image.getWidth(), image.getHeight()});
        exportOptions.setVectorRasterizationOptions(defaultOptions);
        defaultOptions.setTextRenderingHint(com.aspose.imaging.TextRenderingHint.SingleBitPerPixel);
        defaultOptions.setSmoothingMode(com.aspose.imaging.SmoothingMode.None);
    }

    image.save(outputFilePath, exportOptions);
}

Example: The following example shows how to convert a svgz images to svg format

String file = "example.svgz";
String baseFolder = "D:\\Compressed\\";
String inputFile = baseFolder + file;
String outFile = inputFile + ".svg";
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(inputFile))
{
    com.aspose.imaging.imageoptions.VectorRasterizationOptions vectorRasterizationOptions = new com.aspose.imaging.imageoptions.SvgRasterizationOptions();
    vectorRasterizationOptions.setPageSize(com.aspose.imaging.Size.to_SizeF(image.getSize()));
    com.aspose.imaging.imageoptions.SvgOptions options = new com.aspose.imaging.imageoptions.SvgOptions();
    options.setVectorRasterizationOptions(vectorRasterizationOptions);
    image.save(outFile, options);
}

Example: The following example shows how to convert a svg images to svgz format

String file = "juanmontoya_lingerie.svg";
String baseFolder = "D:\\Compressed\\";
String inputFile = baseFolder + file;
String outFile = inputFile + ".svgz";
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(inputFile))
{
    com.aspose.imaging.imageoptions.VectorRasterizationOptions vectorRasterizationOptions = new com.aspose.imaging.imageoptions.SvgRasterizationOptions();
    vectorRasterizationOptions.setPageSize(com.aspose.imaging.Size.to_SizeF(image.getSize()));
    com.aspose.imaging.imageoptions.SvgOptions options = new com.aspose.imaging.imageoptions.SvgOptions();
    options.setVectorRasterizationOptions(vectorRasterizationOptions);
    options.setCompress(true);
    image.save(outFile, options);
}

SvgOptions()

public SvgOptions()

getColorType()

public int getColorType()

Gets or sets the color type for SVG image.

Returns: int - The type of the color of SVG image.

setColorType(int value)

public void setColorType(int value)

Gets or sets the color type for SVG image.

Parameters:

ParameterTypeDescription
valueintThe type of the color of SVG image.

getTextAsShapes()

public boolean getTextAsShapes()

Gets a value indicating whether text must be rendered as shapes.

Value: true if all text is turned into SVG shapes in the conversion; otherwise, false.

Returns: boolean - a value indicating whether text must be rendered as shapes.

setTextAsShapes(boolean value)

public void setTextAsShapes(boolean value)

Sets a value indicating whether text must be rendered as shapes.

Value: true if all text is turned into SVG shapes in the conversion; otherwise, false.

Parameters:

ParameterTypeDescription
valuebooleana value indicating whether text must be rendered as shapes.

Example: This example shows how to load a EMF image from a file and convert it to SVG using EmfRasterizationOptions.

String dir = "c:\\temp\\";

// Using Aspose.Imaging.Image.Load is a unified way to load all types of images including EMF.
com.aspose.imaging.fileformats.emf.EmfImage emfImage = (com.aspose.imaging.fileformats.emf.EmfImage) com.aspose.imaging.Image.load(dir + "test.emf");
try {
    com.aspose.imaging.imageoptions.SvgOptions saveOptions = new com.aspose.imaging.imageoptions.SvgOptions();

    // Text will be converted to shapes.
    saveOptions.setTextAsShapes(true);

    com.aspose.imaging.imageoptions.EmfRasterizationOptions rasterizationOptions = new com.aspose.imaging.imageoptions.EmfRasterizationOptions();

    // The background color of the drawing surface.
    rasterizationOptions.setBackgroundColor(com.aspose.imaging.Color.getWhiteSmoke());

    // The page size.
    rasterizationOptions.setPageSize(new com.aspose.imaging.SizeF(emfImage.getWidth(), emfImage.getHeight()));

    // If embedded emf exists, then render emf; otherwise render wmf.
    rasterizationOptions.setRenderMode(com.aspose.imaging.fileformats.emf.EmfRenderMode.Auto);

    // Set the horizontal margin
    rasterizationOptions.setBorderX(50);

    // Set the vertical margin
    rasterizationOptions.setBorderY(50);

    saveOptions.setVectorRasterizationOptions(rasterizationOptions);

    emfImage.save(dir + "test.output.svg", saveOptions);
} finally {
    emfImage.dispose();
}

getCallback()

public ISvgResourceKeeperCallback getCallback()

Gets the storing strategy for embedded resources of SvgImage such as fonts, nested rasters.

Returns: ISvgResourceKeeperCallback - the storing strategy for embedded resources of SvgImage such as fonts, nested rasters.

setCallback(ISvgResourceKeeperCallback value)

public void setCallback(ISvgResourceKeeperCallback value)

Sets the storing strategy for embedded resources of SvgImage such as fonts, nested rasters.

Parameters:

ParameterTypeDescription
valueISvgResourceKeeperCallbackthe storing strategy for embedded resources of SvgImage such as fonts, nested rasters.

getCompress()

public final boolean getCompress()

Gets a value indicating whether the output image must to be compressed.

Returns: boolean - a value indicating whether the output image must be compressed.

setCompress(boolean value)

public final void setCompress(boolean value)

Sets a value indicating whether the output image must to be compressed.

Parameters:

ParameterTypeDescription
valuebooleana value indicating whether the output image must be compressed.

Example: The following example shows how to convert a svg images to svgz format

String file = "juanmontoya_lingerie.svg";
String baseFolder = "D:\\Compressed\\";
String inputFile = baseFolder + file;
String outFile = inputFile + ".svgz";
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(inputFile))
{
    com.aspose.imaging.imageoptions.VectorRasterizationOptions vectorRasterizationOptions = new com.aspose.imaging.imageoptions.SvgRasterizationOptions();
    vectorRasterizationOptions.setPageSize(com.aspose.imaging.Size.to_SizeF(image.getSize()));
    com.aspose.imaging.imageoptions.SvgOptions options = new com.aspose.imaging.imageoptions.SvgOptions();
    options.setVectorRasterizationOptions(vectorRasterizationOptions);
    options.setCompress(true);
    image.save(outFile, options);
}