2012-01-19 4 views
7

그게 질문입니다. SVG-Salamander가 내 프로젝트에 충분히 작다는 것을 알았습니다. 하지만 그 방법으로도 사용할 수 있을지 모르겠다.SVG 도롱뇽을 사용하여 SVG를 PNG 파일로 래스터화할 수 있습니까? (그리고 어떻게 할 수 있습니까?)

아이디어가 있으십니까?

내가 할 수 없다면 자바에서 다른 작은 SVG - PNG 래스터 라이저를 아십니까?

감사합니다.

이 코드를 사용했습니다은?

public static void main(String[] args) throws IOException, SVGException { 
    // TODO Auto-generated method stub 

    File f = new File("./src/game_scheme.svg"); 
    SVGUniverse svgUniverse = new SVGUniverse(); 
    SVGDiagram diagram = svgUniverse.getDiagram(svgUniverse.loadSVG(f.toURL())); 
    BufferedImage bi = new BufferedImage(320, 240, BufferedImage.TYPE_INT_ARGB); 
    Graphics2D ig2 = bi.createGraphics(); 
    diagram.render(ig2); 
    ImageIO.write(bi, "PNG", new File("./yourImageName.png")); 

} 

그러나 이미지는, 어떤 생각을 :(원활하지 않습니다

+0

나는 비슷한 문제에 직면하고있다. png 이미지가 매끄럽지 않다. 그것을 고칠 수있는 방법이 있습니까? – ayachama

답변

3

는 네, 가능하면 사용하여 SVG 문서를로드하기 만하면됩니다. SVG 도롱뇽에 쓸 BufferedImage를 만들고 BufferedImage에서 Graphics2D 컨텍스트를 만든 다음 SVGDiagram에서 render() 메서드를 호출하여 이미지에 그려 넣습니다.

SVG 도미노를 사용하면 프로세스를 단순화 할 수 있습니다. y에 대한 모든 도롱뇽 내부를 다룰 것입니다. ou 그리고 SVG 문서를 일반적인 스윙 아이콘으로 취급 할 수 있습니다.

많은 SVG 파일을 명령 줄의 이미지로 변환하려는 경우에는 개미 스크립트의 이미지로 SVG를 변환 할 수있는 Ant 작업이 있습니다.

SVG 도롱뇽 사용 문서 : 스윙과 SVG 도롱뇽을 사용 http://svgsalamander.java.net/docs/use.html

간단한 데모 : 당신은 가장자리의 계단 현상을 보는 경우 http://svgsalamander.java.net/docs/exampleCode/SVGIODemo.html

+0

안드로이드 앱을 설치할 때 Ant 원인을 .png로 렌더링합니다. 하지만 정보를 주셔서 감사합니다, 나는 그때 내가 결과에 대해 당신에게 말할 것입니다. –

3

, 당신은 힌트를 렌더링 그래픽을 추가하여이 문제를 해결할 수 있습니다.

또한 그래픽 컨텍스트가 끝나면 dispose()를 호출하는 것이 좋습니다.

Graphics2D ig2 = bi.createGraphics(); 
ig2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 
diagram.render(ig2); 
ig2.dispose(); 

ImageIO.write(bi, "PNG", new File("./yourImageName.png")); 
+0

오늘 밤에 코드를 테스트 해 보겠습니다. 도롱뇽은 매우 훌륭한 라이브러리입니다. 덕분입니다. –

+0

나는 그것을 시험해보고 멋지게 렌더링한다. 당신은 이것을위한 챔피온입니다. –

+0

내 SVG 파일에 자세한 내용이 있습니다. 작은 텍스트가 흐릿하게 보이며 PNG로 변환 할 때 읽을 수 없습니다. – ayachama