Frage

Ich mag das Bild in meinem JPanel zu einer Vektorgrafikdatei exportieren, um sie zu einer höheren als Bildschirmauflösung bearbeitet und gedruckt werden können. Im Grunde möchte ich seine paint() Funktion mit einem Ziel Graphics aufgerufen werden, die die Zeichenbefehle in eine Vektorgrafik-Datei gespeichert werden.

Was ist eine gute und einfache Möglichkeit, dies zu tun? Welche Bibliotheken sind zu empfehlen? Welche Vektor-Format wäre am besten und warum?

War es hilfreich?

Lösung

Hier finden Sie aktuelle The Java EPS Graphics2D Paket .

  

Viele Java-Programme verwenden Graphics2D Zeug auf dem Bildschirm zu zeichnen, und während es leicht ist, die Ausgabe als PNG- oder JPEG-Datei zu speichern, ist es ein wenig härter als ein EPS in einem Dokument oder Papier für die Aufnahme zu exportieren.

     

Dieses Paket macht den gesamten Prozess sehr einfach, weil Sie das EpsGraphics2D-Objekt verwenden kann, als ob es sich um ein Graphics2D Objekt ist. Der einzige Unterschied ist, dass alle der implementierten Methoden EPS-Ausgabe erstellen, was bedeutet, die Diagramme Sie ohne dass es zu einem der gezackten Kanten der Größe verändert werden ziehen können Sie sehen können, wenn die Größenänderung pixelbasierte Bilder, wie JEPG und PNG-Dateien.

Andere Tipps

Batik an eine spezialisierte Implementierung eines Objekts Graphics2D malen lassen und dann exportieren als eine skalierbare Vektorgrafiken (SVG-Datei). Anschließend können Sie / Prozess / drucken Sie es einen SVG-fähigen Browser (Firefox damit umgehen nativ, ISTR, IE und andere können Plugins).

Sehen Sie die SVGGraphics2D Objekt ( Prozess dokumentiert hier )

Die Java-EPS von Pierre erwähnt sieht gut aus, aber wenn es nicht Sie ist vielleicht auch unter FreeHEP Vector Graphics . Geschrieben Java Wiederverwendung in der Hochenergiephysik Feld, damit sie ein Vektor-Grafik-Paket enthält, durch eine Implementierung von Graphics2D getan. Wir haben es für den Export EPS sehr erfolgreich für eine Reihe von Jahren verwendet.

kann ich die VectorGraphics2D Bibliothek (LGPL) empfehlen. Auch wenn es nicht alle Funktionen von Graphics2D nicht unterstützt, habe ich es erfolgreich für mein Projekt. Es bietet Implementierungen von java.awt.Graphics2D für verschiedene Vektor-Dateiformate. Es ist einfach exportiert alle Farbe Operationen EPS, SVG oder PDF-Dateien.

Weitere Bibliotheken für Menschen mit der gleichen Forderung:

Beide GPLv3 und auch über umfangreiche Nutzung in JFreeChart und Orson Charts

FreeHEP scheint ganz gut zu funktionieren, obwohl es nicht mehr aufrechterhalten zu werden scheint und seine Fehler und Forenseiten verschwunden sind. Mit nur wenigen Zeilen erhalten Sie einen Popup-Dialog, das jede Komponente auf eine Vielzahl von skalierbaren und regelmäßigen Bildformaten speichern. Wir haben einige anspruchsvolle Bilder, Alphakanal verwenden, gedrehter Text, Flächen durch Kurven begrenzt, und sie gerettet perfekt, viel besser mit mit VectorGraphics2D.

Das einzige Problem, das ich bisher gesehen habe, ist in jpeg speichern, die für alle meine Bilder schwarz herauskommt. Dies ist nicht sehr wichtig für uns, dass png Werke gegeben, plus alle Vektor-Modi, aber ich bin sicher, es würde für einige ein Problem sein.

Ich hatte genau hinzuzufügen, so viel Code in all diesen Modi zu speichern:

public static void showImage(Component comp) 
{
    try
    {
        ExportDialog export = new ExportDialog();
        export.showExportDialog( null, "Export view as ...", comp, "export" );
        System.err.println("Image save complete");

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

Es gibt eine Reihe von Bibliotheks Gläsern, die ebenfalls hinzugefügt werden müssen.

Dies ist im Grunde direkt nicht möglich, da das niedrige Niveau java api in Bezug auf Raster (Pixel) arbeitet und nie im Vektor-Format gespeichert. (Überprüfen Sie die API von java.awt.Graphics zu sehen, was ich meine).

Es gibt einige allgemeine Zweck-Programm, das Raster-Vektor-Formate zu konvertieren, ist dies ein ich auf eine schnelle Suche gefunden: http://autotrace.sourceforge.net/index.html

so, unter Verwendung eines solchen Programms, das Sie Ihr Problem in zwei kleinere Probleme teilen können:

  1. konvertieren Sie Ihre JPanel in eine Bitmap oder eine Datei ( http: // www. jguru.com/faq/view.jsp?EID=242020 )
  2. laufen automatisch nachzeichnen auf die Datei.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top