Skip to content

Releases: weisJ/jsvg

v1.7.0-rc1

21 Jan 13:32
546ebac
Compare
Choose a tag to compare

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 custom TextOutput in Output#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 (via ParsedElement#document) and to its parent element (via ParsedElement#parent).
  • The rx and ry 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 and fill-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 custom DocumentLimits in the LoaderContext.
  • 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

14 Aug 19:18
9c73862
Compare
Choose a tag to compare

Changes:

  • NullPlatformSupport is now a singleton. Its constructor has been deprecated. Use NullPlatformSupport.INSTANCE instead. (by @VISTALL )

Fixed issues:

  • Parsing loop if paint-order is invalid (some cases) or normal #88

v1.6.0

16 Jul 19:57
fc933de
Compare
Choose a tag to compare

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 through
    LoaderContext.builder().elementLoader(
        ElementLoader.create(ExternalDocumentPolicy.ALLOW_RELATIVE)
    )
    
    passed to SVGLoader.
    By default this is disabled.

Fixed issues:

  • Filter effects outside the geometry box get clipped by mask #84
  • paint-order doesn't get inherited #83

v1.5.0

07 Jun 13:43
adef6dd
Compare
Choose a tag to compare

Changes:

  • Support for filters on root <svg> nodes #61
  • stroke-dasharray is now inherited
  • SVGDocument now exposes its ViewBox through SVGDocument.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 and SVGRenderingHints.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 by SVGDocument.render(Component, Graphics2D, ViewBox bounds)
  • JComponentPlatformSupport replaced by AwtComponentPlatformSupport

v1.4.0

15 Feb 19:58
7d8555d
Compare
Choose a tag to compare

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 the SVGRenderingsHints.KEY_SOFT_CLIPPING to SVGRenderingHints.VALUE_SOFT_CLIPPING_ON on the Graphics2D instance.

v1.3.0

28 Nov 19:38
987a371
Compare
Choose a tag to compare

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 and y 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

02 Oct 13:15
194eb67
Compare
Choose a tag to compare

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

03 Sep 19:21
b627505
Compare
Choose a tag to compare

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)