2010-09-10 3 views
3

У меня проблемы с производительностью с Batik, когда я пытаюсь отображать SVG-файлы с помощью SWT. Это похоже на очень раздутую библиотеку, но единственное, что я мог найти, это SVGSalamander, и похоже, что это только Swing. Есть ли способ визуализации SVG, не преобразовывая их в растровую форму, а это быстрее? Это должна быть кросс-платформа.SVG-рендеринг в Java с использованием SWT - Батик слишком медленный

+0

Я начал искать решение для рендеринга SVG для своего приложения Java и в итоге использовал PNGTranscoder от Batik. Это требует немного больше работы перед началом работы, но для меня лучше было просто отобразить все SVG-файлы в PNG, как только я узнал, в каком размере мне нужно все, чтобы быть. Я знаю, что это не то, что вы хотите, но я думаю, что экономия времени повторного рендеринга (особенно для сложных SVG) значительна, я думаю. Конечно, это не поможет, если вы хотите управлять элементами SVG в режиме реального времени. Если хотите, я могу опубликовать фрагмент кода. Я потратил некоторое время на то, чтобы все это понять :) –

ответ

3

Если вам нужен только рендеринг, я настоятельно рекомендую использовать Mozilla (XULRunner) или WebKit (WebKitGTK +), так как они могут быть встроены в библиотеку SWT.

  • Mozilla XULRunner может использоваться в Windows, Linux и Mac. Его можно использовать в классе SWT Browser, передав конструктору конструктор SWT.Mozilla.
  • Safary (это WebKit) используется SWT по умолчанию в Mac OS X. В Linux это браузер по умолчанию as of SWT 3.7 (который находится только на ранних стадиях). Вы можете заставить SWT использовать WebKit, передав системное свойство org.eclipse.swt.browser.UseWebKitGTK как истинное, если у вас есть SWT 3.6.0+. В Windows есть порт WebKitGTK + от GenuiTec, который может быть found here.

В заключение, двигатель SVG XULRunner легче работать, поскольку его поддержка шире. Вы можете создать пакет «все-в-одном» вашего приложения (комплект XULRunner) для любой платформы. Я лично не рекомендую SWT WebKit от Genuitec для Windows, так как он недостаточно зрелый.

 Смежные вопросы

  • Нет связанных вопросов^_^