FreeHEP, похоже, работает довольно хорошо, хотя, похоже, он больше не поддерживается, а его страницы ошибок и форумов исчезли. С помощью всего лишь нескольких строк вы получаете всплывающее диалоговое окно, в котором можно сохранить любой компонент в различных масштабируемых и обычных форматах изображений. У нас есть несколько сложных изображений, использующих альфа-канал, повернутый текст, области, ограниченные кривыми, и они отлично сохраняются, намного лучше с VectorGraphics2D.
Единственная проблема, которую я видел до сих пор, - это сохранение в формате JPEG, которое для всех моих изображений выглядит черным. Это не очень важно для нас, учитывая, что png работает, плюс все векторные режимы, но я уверен, что это будет проблемой для некоторых.
Мне пришлось добавить именно столько кода, чтобы сохранить во всех этих режимах:
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();
}
}
Есть несколько библиотечных фляг, которые также должны быть добавлены.