私は現在SVGGraphics2Dを使用してSVGファイルを作成しています。私はそれに図形を描くことによってSVGファイルを出力することができましたが、必要なものはSVG文書に描かれたPNGファイルであるバッファ付き画像を持つことです。以下は、現在作業中のコードです。Java - SVGGraphics2Dを使用してPNGファイルからSVGファイルを生成
質問:SVGドキュメントにバッファリングされたイメージを描画する適切なプロセスは何でしょうか?
ソースから画像を描画する方法。
public void paintImage(Graphics g) throws IOException {
File imageSrc = new File("C:\\Users\\anthony\\Downloads\\SVGGraphics2D\\src\\svggraphics\\eg.png");
BufferedImage img = ImageIO.read(imageSrc);
Graphics2D g2d = (Graphics2D) img.getGraphics();
g2d.drawImage(img,0,0,null);
}
SVGドキュメントを作成します。
public static void main(String [] args) throws IOException {
DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation();
String svgNS = "http://www.w3.org/2000/svg";
Document document = domImpl.createDocument(svgNS, "svg", null);
SVGGraphics2D graphics = new SVGGraphics2D(document);
TestSVGGenerator test = new TestSVGGenerator();
test.paintImage(graphics);
boolean useCSS = true;
Writer out = new OutputStreamWriter(new FileOutputStream("test.svg"), "UTF-8");
graphics.stream(out, useCSS);
}
質問はありません。 Btw。 SVGは2Dベクトル形式ですが、2Dビットマップを格納する機能はありますが、これは画像を格納する有効な方法ではありません。 – Spektre
ありがとうございます。しかし、PNG画像をSVGに直接変換することは可能ですか?私は既にPNGイメージをBase64からSVGに変換しようとしたので、まだ動作しません。 – ACM
SVGがネイティブでPNGチャンクをサポートしているとは思いません。 PNGを非圧縮画像に変換して保存する必要があります。あなたが使用しているライブラリがこのようなことをサポートしているかどうか分かりませんが、チャンクをprogramaticalyでSVGに追加することはできますか?SVGドキュメントを参照してください。 – Spektre