Как получить изображение emf в качестве входного потока из системного буфера обмена?JAVA

Программисты JAVA общаются здесь
Anonymous
Как получить изображение emf в качестве входного потока из системного буфера обмена?

Сообщение Anonymous »

Копирование изображения в ChemDraw (редактор векторной графики для молекулярных структур, например Inkscape) переносит в системный буфер обмена изображение emf, следующее из строк CF_ENHMETAFILE и CF_METAFILEPICT во внутреннем буфере обмена:
Изображение
Мне нужно получить изображение как входной поток для конвертации в PNG с помощью FreeHEP. Насколько я знаю, эта и другие библиотеки нуждаются в emf в виде файла или входного потока.
Я пытался использовать этот код для CF_METAFILEPICT и CF_ENHMETAFILE

Код: Выделить всё

String clipboardName = "CF_METAFILEPICT";
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
SystemFlavorMap flavorMap = (SystemFlavorMap) SystemFlavorMap.getDefaultFlavorMap();
DataFlavor myDataFlavor = new DataFlavor(java.io.InputStream.class, "");
flavorMap.addFlavorForUnencodedNative(clipboardName , myDataFlavor);
InputStream data = (InputStream) clipboard.getData(myDataFlavor);
Последняя строка дает исключение java.awt.datatransfer.UnsupportedFlavorException: application/x-java-serialized-object, но оно работает для других объектов (см. рисунок из Inside Clipboard).

Подробнее здесь: https://stackoverflow.com/questions/787 ... -clipboard

Вернуться в «JAVA»