SVG (Scalable Vector Graphics) é um formato de imagem vetorial baseado em XML para definir gráficos bidimensionais com suporte de animação. Essas imagens são usadas principalmente na web devido à alta densidade de pixels. Por outro lado, os recursos avançados também aprimoram o tamanho das imagens SVG em comparação com a imagem PNG com a mesma dimensão. Tais diferenças permitem que os desenvolvedores pensem em converter imagens de um formato para outro. Este artigo discute como converter vetores SVG em imagens PNG em Java.

Converter SVG para PNG em Java (Grayscale, Rotate, Flip, Bright, Watermark)

API Java para converter imagens

GroupDocs.Conversion apresenta documento e API de conversão de imagem para desenvolvedores Java. Ele suporta uma grande lista de formatos de imagens para conversão de um formato para outro. Além disso, os resultados da conversão também podem ser personalizados usando as opções avançadas disponíveis. Usarei esta API, GroupDocs.Conversion for Java para converter os gráficos vetoriais SVG em formato de imagem PNG.

Baixe ou configure

Você pode baixar o arquivo JAR da seção de downloads, ou apenas obter as configurações de repositório e dependência para o pox.xml de seus aplicativos Java baseados em maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-conversion</artifactId>
        <version>22.3</version> 
</dependency>

Converter SVG para imagem PNG em Java

Sem perder tempo, vamos começar com a conversão básica com a configuração padrão. As etapas a seguir mostram como converter o arquivo de gráficos vetoriais SVG em imagem PNG em Java.

  • Carregue o gráfico PNG usando a classe Converter.
  • Prepare as opções de conversão de imagem.
  • Defina o tipo de arquivo de conversão como PNG.
  • Chame o método convert() para obter o arquivo SVG carregado convertido em imagem PNG.

O código-fonte Java a seguir converte o SVG em uma imagem PNG.

// Como converter o arquivo SVG para o formato PNG em Java usando as opções padrão
Converter converter = new Converter("path/vector-graphics.svg");

ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageFileType.Png);

converter.convert("path/svg-to-png.png", options);

SVG para imagem PNG usando opções avançadas em Java

Muitas opções de personalização podem ser aplicadas à saída PNG durante a conversão de SVG para obter o resultado desejado. A seguir estão algumas das propriedades que podem ser ajustadas durante a conversão de SVG para PNG:

Opção de personalização Método
Brilho setBrightness(int value)
Contraste setContrast(int value)
Modo Inverter (Horizontal / Vertical) setFlipMode(ImageFlipModes value)
Gamma setGamma(float value)
Grayscale setGrayscale(boolean value)
Altura setHeight(int value)
Ângulos de rotação setRotateAngle(int value)
Marca d’água setWatermark(WatermarkTextOptions value)
Largura setWidth(int value)

As etapas a seguir mostram como aplicar variações ao converter um gráfico SVG em uma imagem PNG em Java.

  • Carregue o gráfico SVG usando a classe Converter.
  • Prepare as opções de conversão de imagem.
  • Defina o tipo de arquivo de conversão como PNG.
  • Defina outras propriedades relevantes usando os respectivos métodos de configuração e ajuste seus valores de acordo.
  • Converta para imagem PNG usando o método convert() com opções preparadas.

Você pode aplicar qualquer um desses efeitos ou em combinação para obter a saída PNG necessária. O código-fonte a seguir aplica a personalização à imagem PNG enquanto a conversão de SVG para PNG em Java.

// Converta o arquivo SVG para o formato PNG em Java usando várias personalizações
Converter converter = new Converter("path/vector-graphics.svg");

ImageConvertOptions options = new ImageConvertOptions();
options.setFormat(ImageFileType.Png); // Set output format as PNG

options.setFlipMode(ImageFlipModes.FlipY); // Flip Vertically or Horizontally
options.setBrightness(50);  // Set Brightness
options.setContrast(50);    // Set Contrast
options.setGamma(0.5F);     // Set Gamma
options.setGrayscale(true);	// Set Grayscale
options.setRotateAngle(45);	// Set Rotation

// Adicionar marca d'água ao PNG quando convertido do formato SVG
WatermarkTextOptions watermark = new WatermarkTextOptions("Watermark");
watermark.setColor(Color.BLUE);
watermark.setBackground(false);
watermark.setRotationAngle(-45);
watermark.setTop(50);
watermark.setLeft(50);
watermark.setTransparency(0.2);
watermark.setWidth(450);
watermark.setHeight(450);
options.setWatermark(watermark);

converter.convert("path/svg-to-png-customized.png", options);

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Resumindo, aprendemos a converter arquivos SVG para o formato PNG dentro dos aplicativos Java. Aprendemos ainda mais como podemos girar, inverter ou marcar arquivos PNG com marca d’água quando convertidos do formato SVG. Além disso, discutimos como ajustar as opções de brilho, gama e tons de cinza.

Você pode tentar construir seu próprio aplicativo Java de conversão de imagem. Você pode saber mais sobre as APIs na documentação para a automação de conversões de documentos e imagens.

A maneira mais fácil é experimentar os exemplos do GitHub. Contacte-nos para qualquer questão através do fórum.

Veja também