Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Utilize non-Java-library for SVG Rasterization #2758

Open
Michael5601 opened this issue Jan 24, 2025 · 0 comments
Open

Utilize non-Java-library for SVG Rasterization #2758

Michael5601 opened this issue Jan 24, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@Michael5601
Copy link

The SVG rasterization for icons introduced in this PR enables the use of arbitrary Java libraries to rasterize SVGs at runtime. Currently, the library JSVG has been selected for this purpose, as it provides the best results compared to other Java libraries such as svgSalamander, Apache Batik, and EchoSVG.

However, there are non-Java libraries that outperform JSVG in terms of performance and functionality. Based on existing comparisons (Wikimedia SVG test suite and resvg GitHub repository), the C-library resvg stands out as the best option.

The choice to use a Java library for the initial implementation was made to simplify integration. Integrating a C library like resvg introduces additional complexity. As can be seen in my JSVG performance evaluation, using JSVG adds approximately 1 second to the initialization time of the Eclipse UI when rasterizing SVGs. One way to improve the performance of the feature is using a faster library like resvg.

This issue stands as a reminder for future work and does not need to be finished to use the feature, as the performance of JSVG is probably sufficient for now.

@Michael5601 Michael5601 added the enhancement New feature or request label Jan 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant