Releases: weisJ/jsvg
Releases · weisJ/jsvg
v1.7.0-rc1
Changes
- Implementors of
Output
now have more control over how text gets rendered. The can opt to receive information about the text being laid out by returning a customTextOutput
inOutput#textOutput
. ExternalResourcePolicy
now applies to all resources not only referenced SVG elements.- Support for multi-char codepoints such as "𝄞".
- Rudimentary support for rendering emoji. This feature does not work on every operating system and JDK version.
- Support for more units:
- rem
- ch
- Q
- vw,vh,vmin,vmax
- vi,vb
ParsedElement
now has access to the document it belongs to (viaParsedElement#document
) and to its parent element (viaParsedElement#parent
).- The
rx
andry
attributes are now correctly applied in cases. - Fixed rendering of paths with repeated cubic/quadratic bezier commands.
- Fixed usage of repeated values in the
paint-order
attribute. stroke-opacity
andfill-opacity
now correctly don't accumulate to child elements.- Percentages in stroke related properties now correctly refer to the diagonal length of the current viewport.
- Fixed bounds computation of empty groups for which a transform is specified.
- Support for the
transform-box
property. (by @Cu3PO42 in #99) - Prevent DOS attacks through exponential leaf nodes using
use
elements. The limits for this can be configured setting customDocumentLimits
in theLoaderContext
. - JSVG now provides OSGi metadata (by @HannesWell in #107)
- Preview support for animations. Not many properties outside of geometry properties are animatable. Only basic animation timings are implemented.
Deprecations`
See documentation for replacements.
LoadHelper(AttributeParser, ResourceLoader)
SVGDocument#render(JComponent, Graphics2D, ViewBox)
AttributeNode#getPercentage(String, float)
SVGDocumentBuilder(ParserProvider, ResourceLoader, NodeSupplier)
SVGLoader#load(InputStream)
SVGLoader#load(InputStream, ParserProvider)
SVGLoader#load(InputStream, ParserProvider, ResourceLoader)
Full Changelog: v1.6.1-rc1...v1.7.0-rc1
v1.6.1
v1.6.0
Caution
This release contains an issue which prevents parsing of some svg files to finish. Use version 1.6.1
instead.
Changes:
- Support for
feDropShadow
- Added experimental support for resolving elements in
href
from external documents throughpassed toLoaderContext.builder().elementLoader( ElementLoader.create(ExternalDocumentPolicy.ALLOW_RELATIVE) )
SVGLoader
.
By default this is disabled.
Fixed issues:
v1.5.0
Changes:
- Support for filters on root
<svg>
nodes #61 stroke-dasharray
is now inheritedSVGDocument
now exposes itsViewBox
throughSVGDocument.viewbox()
#69- Support for the
color-interpolation-filters
property. In particular filters are now computed in the correct colorspace. <feComponentTransfor>
together with<feFunc[ARGB]>
is now supported.- Introduce
SVGRenderingHints.KEY_MASK_CLIP_RENDERING
andSVGRenderingHints.VALUE_MASK_CLIP_RENDERING_ACCURACY
to ensure proper mask/clipPath isolation to fix #74 if desired. - Support rendering to AWT components #77.
- Added
SVGDocument.renderWithPlatform(PlatformSupport, Graphics2D, ViewBox)
Fixed issues:
- Improper sub pixel alignment when using masks or filters #62
- Filters are now clipped to filter primitive regions #70
- General correctness improvements for filters in particular
<feBlend>
and alpha compositing. - Invalid paths now render up to the point where they are valid #68
- Unitless values for mask bounds are now correctly interpreted as percentages #75
- Fix scenarios where masks are applied incorrectly #74
Deprecations
SVGDocument.render(JComponent, Graphics2D, ViewBox bounds)
. Replaced bySVGDocument.render(Component, Graphics2D, ViewBox bounds)
JComponentPlatformSupport
replaced byAwtComponentPlatformSupport
v1.4.0
Changes:
- The shape of a svg file can now be computed using
SVGDocument.computeShape()
. - Implemented (experimental) soft clipping for
<clipPath>
. It can be enabled by setting theSVGRenderingsHints.KEY_SOFT_CLIPPING
toSVGRenderingHints.VALUE_SOFT_CLIPPING_ON
on theGraphics2D
instance.
v1.3.0
Changes:
- Support for svg resources in
<img>
tags. #53 - Comments in css declarations (inside
<style>
tags) are now supported. - If an
<img>
tag isn't able to load the resource a replacement "missing image" visual is shown. - A small move towards supporting proper xml namespacing
Fixed issues:
- The
x
andy
properties on top level svg are now ignored as per the specification. - Incorrect size conversion for coordinates in ellipses and circles.
- Numbers not separated by space
e.g 5-4 i.e. 5 and -4
are now properly parsed in transform specifiers.
v1.2.0
Changes:
- Improved performance of SVG files with rectangular clipping areas. (by @eriklumme1)
Fixed issues:
- Possible OOM with two stops at the same location in
radialgradient
. - Exception if a masks is applied to empty groups.
v1.1.0
Fixed issues:
- Improved correctness of used primitive filter regions e.g. for
feBlend
- The focus radius (
fr
)now produces the correct result from the specification - Empty masks no longer produce exceptions (#44)
- Α composite is now respected when painting shapes (#43)
- Fixed issue where encountering e.g. "1e5.5" in path data caused an exception. It is now correctly treated as "1e5 .5"
- The
miter-limit
property is now handled correctly if an invalid value is specified. - Fixed incorrect conversion from cm to px (#45)
- Fixed an CSS parsing issue, where not terminating the last rule with a semicolon would throw an exception (#46)