2015-11-23 2 views
5

Я хочу отображать некоторые изображения на холсте соответственно размеру экрана без потери разрешения изображения.Показать CVG на холсте

Если я использую простой png или jpeg, я увижу изображение, пикселированное на большом экране.

Я думаю, что нужно использовать svg-файлы и отображать их на janvas. Возможно ли подобное? (Я пытался использовать Apache Batik без положительного результата)

Если это невозможно, можете ли вы подумать о другой альтернативе?

+0

вы пробовали пример здесь: http://www.java2s.com/Code/Java/XML/SVGCanvasDemo.htm – JoSSte

ответ

4

Apache Commons имеет Batik Swing component, содержащий специальный холст JSVGCanvas. Это лучший подход, который вы можете найти.

Цель модуль компонент Batik Swing является обеспечение Swing компонента, который может , используемые для отображения SVG документов. С классом JSVGCanvas вы можете легко отобразить SVG-документ (из URI или дерева DOM) и позволить пользователю манипулировать им, например, вращать, масштабировать, панорамировать, выбирать текст или активировать гиперссылки.


Я пытался использовать Apache Batik без possitive результата в

Любая проблема, вы можете поделиться с нами? Here и here вы найдете, как его реализовать.

public SVGCanvasDemo(JFrame frame) { 
    frame.getContentPane().setLayout(new BorderLayout()); 
    frame.getContentPane().add("Center", svgCanvas); 
    frame.setVisible(true); 
    svgCanvas.setURI("file:/c:/files/hungryminds/rectangles.svg"); 
} 
+0

спасибо за ваш ответ. Еще один вопрос - просто понять, как это работает. если я хочу отображать несколько изображений на холсте, я должен использовать несколько экземпляров JSVGCanvas? –

+0

Да, как описано в компоненте: * при отображении или манипулировании ** SVG-документом. *** –

+0

У меня есть следующая ошибка: «org.w3c.dom.svg не существует», когда я импортирую файлы батика в свой проект. Папка «org/w3c/dom/svg» не существует внутри загруженных ZIP-файлов –