在我的一個項目中,我使用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等基於矢量的格式,而無需太多麻煩?我發現了幾個用於管理Java中基於矢量的圖像的庫(VectorGraphics2D,FreeHEP),但我不確定是否使用它們意味着我必須「重新繪製」圖中的每個頂點和邊。這顯然不是很理想......
- 有沒有其他的選擇,我可能錯過了?
由於提前,
也許,你可以把你生成的柵格/位圖圖像文件轉換成矢量圖像文件後使用第三方庫,如Autotrace [http://autotrace.sourceforge.net/](http://autotrace.sourceforge.net/) – ecle 2011-12-15 11:22:58
你能解決這個問題?因爲以下答案實際上都不起作用@posdef – SacJn 2017-03-20 10:01:47