В одном из моих проектов я использую JUNG2 для визуализации очень большого многоуровневого иерархического графика, отображаемого в апплете. Мне нужно будет экспортировать все/части графика в неподвижные изображения высокого разрешения, так как скриншоты выглядят отвратительными при печати (особенно если график был уменьшен).Экспорт графиков JUNG в изображения с высоким разрешением (желательно на основе вектора)
код я использую в настоящее время выглядит следующим образом:
public void writeToDisk(File saveToFolder, String filename) {
//Dimension loDims = getGraphLayout().getSize();
Dimension vsDims = getSize();
int width = vsDims.width;
int height = vsDims.height;
Color bg = getBackground();
BufferedImage im = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
Graphics2D graphics = im.createGraphics();
graphics.setColor(bg);
graphics.fillRect(0,0, width, height);
paintComponent(graphics);
try{
ImageIO.write(im,"png",new File(saveToFolder,filename));
}catch(Exception e){
e.printStackTrace();
}
}
Это создает PNG изображения, которые не особенно высокого разрешения. Поэтому мои вопросы таковы:
- Возможно ли увеличить разрешение экспорта PNG до 300 dpi?
- Можно ли экспортировать график или любой компонент качания в этом отношении в векторные векторные форматы, такие как EPS, PDF или SVG, без лишних хлопот? Я нашел несколько библиотек (VectorGraphics2D, FreeHEP) для управления векторными изображениями на Java, однако я не уверен, что использование их будет означать, что я должен «повторно рисовать» каждую вершину и ребро на графике. Это явно не очень желательно ...
- Есть ли другие альтернативы, которые я мог пропустить?
Спасибо заранее,
Может быть, вы можете преобразовать полученный растр/файл растрового изображения в файл векторного изображения позже, используя стороннюю библиотеку, такую как Autotrace [http://autotrace.sourceforge.net/](http://autotrace.sourceforge.net/) – ecle
Вы смогли решить эту проблему? Поскольку ни один из следующих ответов на самом деле не работает @posdef – SacJn
@SacJn ответ, который я опубликовал ниже ** сделал ** работать в то время, я не могу сказать, изменились ли библиотеки таким образом, что это разрывает это решение. Я больше не работаю над этим проектом #orphanproject #programminginacademia :) – posdef