[java] Apache Batik 라이브러리를 활용한 그래픽 디자인

Apache Batik은 Java로 작성된 2D 벡터 그래픽 및 그래픽 처리 라이브러리입니다. 이 라이브러리를 사용하면 SVG(Scalable Vector Graphics) 이미지를 생성, 조작 및 표시할 수 있습니다. 또한 Batik은 다양한 형식의 이미지로 변환할 수 있는 기능을 제공합니다.

Batik 라이브러리 추가하기

Apache Batik을 프로젝트에 추가하는 가장 간단한 방법은 Maven 또는 Gradle을 사용하여 의존성을 추가하는 것입니다.

Maven을 사용하는 경우:

<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>batik-transcoder</artifactId>
    <version>1.14</version>
</dependency>

Gradle을 사용하는 경우:

implementation 'org.apache.xmlgraphics:batik-transcoder:1.14'

의존성을 추가한 후 프로젝트를 다시 빌드하여 Batik 라이브러리를 사용할 수 있습니다.

SVG 이미지 생성하기

import org.apache.batik.svggen.SVGGraphics2D;
import org.apache.batik.dom.GenericDOMImplementation;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;

// Create an instance of DOMImplementation
DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation();

// Create an instance of Document
String svgNS = "http://www.w3.org/2000/svg";
Document document = domImpl.createDocument(svgNS, "svg", null);

// Create an instance of SVGGraphics2D
SVGGraphics2D svgGenerator = new SVGGraphics2D(document);

// Perform drawing operations on svgGenerator (e.g., draw shapes, add text)

// Finally, get the SVG as String
String svgString = svgGenerator.getSVGDocument();

SVG 이미지를 다른 형식으로 변환하기

import org.apache.batik.transcoder.Transcoder;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;

// Create a PNG transcoder
Transcoder transcoder = new PNGTranscoder();

// Set the transcoding input
TranscoderInput input = new TranscoderInput(new StringReader(svgString));

// Set the transcoding output
OutputStream outputStream = new FileOutputStream("output.png");
TranscoderOutput output = new TranscoderOutput(outputStream);

// Perform the transcoding
transcoder.transcode(input, output);

// Clean up
outputStream.close();

결론

Apache Batik 라이브러리를 사용하면 Java 애플리케이션에서 SVG 이미지를 생성하고 다른 형식으로 변환하는 작업을 쉽게 수행할 수 있습니다. 따라서 Batik은 그래픽 디자인 및 이미지 처리에 유용한 도구로 활용될 수 있습니다.

참고 자료