Trong một dự án của tôi, tôi sử dụng JUNG2 để hiển thị biểu đồ phân cấp nhiều bậc cha mẹ rất lớn, được hiển thị trong một applet. Tôi sẽ cần phải xuất toàn bộ/phần của biểu đồ thành hình ảnh tĩnh có độ phân giải cao, vì ảnh chụp màn hình trông ghê tởm khi được in (đặc biệt nếu biểu đồ đã được thu nhỏ).Xuất đồ thị JUNG sang hình ảnh có độ phân giải cao (tốt nhất là vector)
Mã Tôi hiện đang sử dụng như sau:
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();
}
}
Điều này tạo ra hình ảnh PNG mà không đặc biệt độ phân giải cao. Vì vậy, câu hỏi của tôi như sau:
- Có thể đẩy độ phân giải xuất PNG lên 300 dpi không?
- Có thể xuất đồ thị hoặc bất kỳ thành phần xoay nào cho vấn đề đó, với các định dạng dựa trên vector như EPS, PDF hoặc SVG mà không có quá nhiều rắc rối? Tôi đã tìm thấy một số thư viện (VectorGraphics2D, FreeHEP) để quản lý hình ảnh dựa trên vector trong Java, tuy nhiên tôi không chắc chắn nếu sử dụng chúng có nghĩa là tôi phải "vẽ lại" từng đỉnh và cạnh trong biểu đồ. Điều đó rõ ràng không phải là rất mong muốn ...
- Có bất kỳ lựa chọn thay thế nào khác mà tôi có thể đã bỏ lỡ không?
Cảm ơn trước,
Có lẽ, bạn có thể chuyển đổi raster kết quả của bạn/tệp hình ảnh bitmap vào tệp hình ảnh vector sau này bằng cách sử dụng thư viện của bên thứ ba như Autotrace [http://autotrace.sourceforge.net/] (http://autotrace.sourceforge.net/) – ecle
Bạn có thể giải quyết vấn đề này không? Bởi vì không có câu trả lời nào sau đây thực sự hoạt động @posdef – SacJn
@SacJn câu trả lời tôi đã đăng bên dưới ** đã ** làm việc tại thời điểm đó, tôi không thể nói nếu các thư viện đã thay đổi theo cách phá vỡ giải pháp đó. Tôi không làm việc trên dự án đó nữa #orphanproject #programminginacademia :) – posdef