SVG (Scalable Vector Graphics) は、アニメーションをサポートする 2 次元グラフィックスを定義するための XML ベースのベクター画像形式です。これらの画像は、ピクセル密度が高いため、主に Web で使用されます。一方、豊富な機能により、同じサイズの PNG 画像と比較して、SVG 画像のサイズも大きくなります。このような違いにより、開発者は画像をある形式から別の形式に変換することを考えることができます。この記事では、Java で SVG ベクターを PNG 画像に変換する方法について説明します。

Java で SVG を PNG に変換 (グレースケール、回転、反転、明るい、透かし)

画像を変換する Java API

GroupDocs.Conversion は、ドキュメントと Java 開発者向けの画像変換 API を示しています。ある形式から別の形式に変換するための画像形式の大きなリストをサポートしています。さらに、利用可能な高度なオプションを使用して、変換結果をカスタマイズすることもできます。この API GroupDocs.Conversion for Java を使用して、SVG ベクター グラフィックスを PNG 画像形式に変換します。

ダウンロードまたは構成

ダウンロード セクション から JAR ファイルをダウンロードするか、Maven ベースの Java アプリケーションの pox.xml のリポジトリと依存関係の構成を取得します。

<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>

JavaでSVGをPNG画像に変換する

時間を無駄にすることなく、デフォルト構成での基本的な変換から始めましょう。次の手順は、Java で SVG ベクター グラフィックス ファイルを PNG 画像に変換する方法を示しています。

  • Converter クラスを使用して PNG グラフィックを読み込みます。
  • 画像変換オプションを準備します。
  • 変換ファイルの種類を PNG に設定します。
  • convert() メソッドを呼び出して、読み込まれた SVG ファイルを PNG 画像に変換します。

次の Java ソース コードは、SVG を PNG 画像に変換します。

// デフォルトオプションを使用してJavaでSVGファイルをPNG形式に変換する方法
Converter converter = new Converter("path/vector-graphics.svg");

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

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

Java の高度なオプションを使用した SVG から PNG 画像への変換

SVG から変換する際に、多くのカスタマイズ オプションを PNG 出力に適用して、目的の結果を得ることができます。以下は、SVG から PNG への変換中に調整できるプロパティの一部です。

カスタマイズオプション 方法
明るさ setBrightness(int value)
コントラスト setContrast(int value)
フリップ モード (水平/垂直) setFlipMode(ImageFlipModes value)
ガンマ setGamma(float value)
グレースケール setGrayscale(boolean value)
高さ setHeight(int value)
回転角度 setRotateAngle(int value)
透かし setWatermark(WatermarkTextOptions value)
setWidth(int value)

次の手順は、Java で SVG グラフィックを PNG 画像に変換する際にバリエーションを適用する方法を示しています。

  • Converter クラスを使用して SVG グラフィックを読み込みます。
  • 画像変換オプションを準備します。
  • 変換ファイルの種類を PNG に設定します。
  • それぞれのセッター メソッドを使用して他の関連するプロパティを設定し、それに応じて値を調整します。
  • 準備されたオプションを指定して convert() メソッドを使用して、PNG 画像に変換します。

これらの効果のいずれかまたは組み合わせを適用して、必要な PNG 出力を得ることができます。次のソース コードは、Java での SVG から PNG への変換中に、PNG 画像にカスタマイズを適用します。

// さまざまなカスタマイズを使用して、Java で SVG ファイルを PNG 形式に変換します
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

// SVG 形式からの変換時に PNG に透かしを追加する
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);

無料の API ライセンスを取得する

無料の一時ライセンスを取得して、評価制限なしで API を使用できます。

結論

要約すると、Java アプリケーション内で SVG ファイルを PNG 形式に変換する方法を学びました。さらに、SVG 形式から変換したときに PNG ファイルを回転、反転、または透かしを入れる方法についても学びました。さらに、明るさ、ガンマ、およびグレースケール オプションを調整する方法についても説明しました。

独自の画像変換 Java アプリケーションを作成してみてください。ドキュメントと画像の変換を自動化するための API の詳細については、ドキュメント を参照してください。

最も簡単な方法は、GitHub の例を体験することです。 フォーラムからお問い合わせください。

関連項目