Wie Vektor-Grafik in die Zwischenablage kopieren?

inflamer

Bekanntes Mitglied
Hallo zusammen,

wie stellt man das am Besten an, und zwar so, dass gängige Grafikbearbeitungsprogramme (Adobe Illustrator, Inkscape, MS Office usw.) mit dem Inhalt der Zwischenablage anschließend auch etwas anfangen können?

Am einfachsten wäre in meinem konkreten Fall, die Daten entweder im EPS oder im SVG-Format in ein ByteArray zu schreiben. Falls das eine gute Lösung ist, müsste ich dieses ByteArray ja wohl anschließend in ein Transferrable packen. Wie müsste der Code (mit DataFlavor und allem Pipapo) dazu in etwa aussehen?

Die (für mich erst einmal) schlechtere Alternative wäre EMF. Nachdem, was ich bis jetzt gelesen habe ist unter Windows EMF zwar das Format der Wahl, wenn es um das "Copypasten" von Vektorgrafiken geht, allerdings mutet die einzige Bibliothek Namens "FreeHEP", die ich bisher gefunden habe und die das macht, etwas merkwürdig an; mitunter erwartet sie eine Component-Instanz als Argument:
https://github.com/freehep/freehep-...e/util/export/VectorGraphicsTransferable.java

Ein weiterer Nachteil von EMF ist eben die Betriebssystemabhängigkeit. Ich schätze mal unter MacOS gibt es dafür einen anderen Standard?

Danke!
 
Zuletzt bearbeitet:

mihe7

Top Contributor
wie stellt man das am Besten an
Gute Frage.
Java:
import javax.activation.DataHandler;
import java.net.URL;
import java.io.*;
import java.awt.Toolkit; 
import java.awt.datatransfer.*; 

import static java.util.stream.Collectors.*;

public class SvgClipboard {

    public static void main(String[] args) throws Exception {
        Clipboard systemClipboard;
        systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 

        try(InputStreamReader in = new InputStreamReader(new URL(args[0]).openStream());
                BufferedReader reader = new BufferedReader(in)) {
            String svg = reader.lines().collect(joining());
            DataHandler contents  = new DataHandler(svg.getBytes("UTF-8"), "image/svg+xml");
            systemClipboard.setContents(contents, null);
        }

        System.out.println("Press ENTER to leave (clipboard content will be lost)");
        System.in.read();
    }
}

Aufruf z. B. mit java -cp . SvgClipboard "https://upload.wikimedia.org/wikipedia/commons/7/72/Variable_Resistor.svg"

Funktioniert zumindest unter Linux - danach kann man das Bild in z. B. Inkscape einfügen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I 2D-Grafik Vektor-Grafik über die Zwischenablage nach Adobe Illustrator transferieren Allgemeine Java-Themen 8
C Zeilen-"Vektor" aus Excel-Tabelle suchen Allgemeine Java-Themen 0
R Multiplikation von Matrix und Vektor Allgemeine Java-Themen 5
P Matrix-Vektor Multiplikation Allgemeine Java-Themen 8
P Matrix-Vektor-Multiplikation Allgemeine Java-Themen 25
H Vektor rekursiv erzeugen Allgemeine Java-Themen 2
Zettelkasten Vektor mit Koordinaten erstellen Allgemeine Java-Themen 2
S Vektor in DB speichern Allgemeine Java-Themen 3
O Vektoren in Vektor sortieren aber mit Java 1.4 (!) Allgemeine Java-Themen 4
O Vektor kopieren (Inhalt, nicht Referenzen) Allgemeine Java-Themen 3
B Was sollte ich benutzen Vektor oder ArrayList? Allgemeine Java-Themen 5
B wird Vektor als Referenz übergeben? Allgemeine Java-Themen 5
M Vektor zusammenfassen Allgemeine Java-Themen 3
D Vektor - bestimmte Werte auslesen. Allgemeine Java-Themen 3
N 3d Grafik Kamera Allgemeine Java-Themen 2
N 3D Grafik erstellt Allgemeine Java-Themen 5
N 3D-Grafik 3D Grafik selber bauen Allgemeine Java-Themen 0
P Probleme mit Grafik (Java) Allgemeine Java-Themen 6
E 2D-Grafik nicht-rechteckige Grafik anzeigen Allgemeine Java-Themen 3
Maxim6394 Grafik zu Mausklick-Koordinate bewegen Allgemeine Java-Themen 18
vladimir Welche API für Grafik und Drag&Drop Allgemeine Java-Themen 3
R Texterkennung - Text aus einem/r Bild/Grafik auslesen Allgemeine Java-Themen 2
N grafik rotieren und zentrieren Allgemeine Java-Themen 4
L Grafik lesen Allgemeine Java-Themen 2
S 3D Grafik Library? Allgemeine Java-Themen 5
hdi Auslesen der Farbwerte einer Grafik-Datei Allgemeine Java-Themen 4
B Grafik erzeugen in java Allgemeine Java-Themen 2
G Messen in einer Grafik Allgemeine Java-Themen 7
W Java verursacht Grafik-Fehler? Allgemeine Java-Themen 3
P Grafik Bibliothek Allgemeine Java-Themen 4
S Konverter Postscript -> Grafik gesucht Allgemeine Java-Themen 2
C Grafik Editor in Java Allgemeine Java-Themen 2
P dxf-Daten aus Grafik erstellen Allgemeine Java-Themen 3
M itext - Button der Text in Zwischenablage stellt Allgemeine Java-Themen 0
B In zwischenablage kopieren Allgemeine Java-Themen 2
M Zwischenablage/ Drag and Drop Allgemeine Java-Themen 9
C Überwachen der Zwischenablage, aber wie? Allgemeine Java-Themen 10
S Zwischenablage lesen und schreiben Allgemeine Java-Themen 2
Daniel_L RTF - Format aus Zwischenablage erkennen und "einlesen"? Allgemeine Java-Themen 5
G Text aus Zwischenablage in JTextarea -> JDBC Error Allgemeine Java-Themen 3
S Bild aus Zwischenablage in Applet einfügen Allgemeine Java-Themen 2
G String in die Zwischenablage schreiben Allgemeine Java-Themen 5
P Überwachung der System-Zwischenablage Allgemeine Java-Themen 2
N Struct oder Record? Und COPY in und aus Zwischenablage Allgemeine Java-Themen 2
M Bild in Zwischenablage kopieren? Allgemeine Java-Themen 7
A Windows Zwischenablage Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben