Skip to content

Releases: meyfa/php-svg

v0.14.0

02 Jan 21:30
c2c59ec
Compare
Choose a tag to compare

What's Changed

  • feat!: Implement a font registry for text rendering by @meyfa in #191
    • This changes the way text rasterization works in PHP-SVG, including some breaking changes.
    • Refer to the pull request for further information: #191
  • feat: Add type declarations for SVGNode methods by @meyfa in #192
  • feat: Add type declarations for reader, writer, utilities, SVG class by @meyfa in #193
  • feat: Add type declarations for rasterization classes by @meyfa in #194
  • chore: update README, add newer PHP versions by @Niellles in #188

Full Changelog: v0.13.0...v0.14.0

v0.13.0

09 Dec 15:59
4fc40af
Compare
Choose a tag to compare

What's Changed

⚠️ BREAKING CHANGE: This version requires PHP 7.3 or later!

PHP-SVG 0.12.0 has been the last release to support all PHP versions down to 5.3.3. From now on, PHP-SVG will require a minimum PHP version of 7.3. Read more about this choice here: #180

This should only affect you if you're using a PHP installation that's more than 4 years out of date. Keep in mind that everything below PHP 8 has already reached official end-of-life, so please consider upgrading. Running outdated software is a security risk.

Changes

  • chore!: Drop support for PHP versions older than 7.3 (closes #180) by @meyfa in #182
  • chore: Run CI tests also on PHP 8.1 and 8.2 by @meyfa in #185
  • chore: Clean up some code by @meyfa in #183
  • fix: Use short array syntax by @meyfa in #184
  • fix: Use the coalescing operator ?? by @meyfa in #186
  • chore: Remove TODO about PHP version 5.3 missing a parameter by @meyfa in #187

Full Changelog: v0.12.0...v0.13.0

v0.12.0

07 Dec 15:11
f6cc2fa
Compare
Choose a tag to compare

What's Changed

  • feat: Implement path rendering that respects fill-rule! :) by @meyfa in #136
  • fix: Round the strokeWidth when outlining shapes in renderers by @meyfa in #137
  • feat: Implement a Transform class by @meyfa in #138
  • feat: Add normalized diagonal getters to SVGRasterizer by @meyfa in #139
  • tests: Ensure Length::convert() with null input returns null by @meyfa in #141
  • refactor: Convert lengths to pixels outside of renderers by @meyfa in #142
  • feat: Add resize() method to Transform for measuring width/height scale by @meyfa in #143
  • refactor: Use Transform class for viewport scale+offset during render by @meyfa in #144
  • feat: Implement TransformParser for converting strings to Transform by @meyfa in #145
  • feat: Add SVGRasterizer::pushTransform() and ::popTransform() by @meyfa in #150
  • refactor: Move path approximation into renderer by @meyfa in #151
  • refactor: Make PathApproximator explicitly stateful by @meyfa in #152
  • chore(ci): Use composer.json for cache key instead of composer.lock by @meyfa in #153
  • chore(ci): Cache composer's internal cache directory instead of vendor by @meyfa in #154
  • feat: Rewrite PathApproximator to take the Transform into account by @meyfa in #155
  • feat: Implement fill-rule support for PolygonRenderer by @meyfa in #157
  • feat: Implement renderer support for 'fill-opacity' and 'stroke-opacity' by @meyfa in #158
  • fix: Ensure style properties do not contain surrounding whitespace by @meyfa in #161
  • fix: Round pixel coordinates for path stroke and fill by @meyfa in #162
  • fix: Avoid path fill crash with too few points by @meyfa in #164
  • fix: Avoid path stroke crash with too few points by @meyfa in #166
  • refactor: Simplify PathRendererImplementation loop by @meyfa in #167
  • docs(readme): Rewrite the README (fixes #125) by @meyfa in #163
  • fix: Avoid deprecation warnings when passing null by @beatjaeckle in #169
  • docs: Declare null return typehints on SVG::getWidth/getHeight by @norkunas in #170
  • feat: Add LIBXML_PARSEHUGE flag to allow larger content by @walidaalhomsi in #172
  • refactor: Use hypot() to calculate hypotenuse by @Niellles in #176
  • fix: Add shim for trim() that accepts null by @Niellles in #177
  • chore: Improve each() polyfill (fixes #178) by @Niellles in #179
  • fix: Fix more wrong typehints by @norkunas in #181

New Contributors

Full Changelog: v0.11.3...v0.12.0

v0.11.3

18 Feb 11:59
a3588b1
Compare
Choose a tag to compare

What's Changed

  • chore(ci): Configure test workflow to also run on PHP 8 by @meyfa in #135
    • Includes a fix in ImageRenderer for PHP 8.
  • Move to GitHub Actions by @meyfa in #120
  • Delete .travis.yml by @meyfa in #121

Full Changelog: v0.11.2...v0.11.3

v0.11.2

25 May 21:25
619033e
Compare
Choose a tag to compare

What's Changed

  • Fix missing import in SVGTextPath by @fankoti in #119

New Contributors

  • @fankoti made their first contribution in #119

Full Changelog: v0.11.1...v0.11.2

v0.11.1

23 Mar 18:05
073348c
Compare
Choose a tag to compare

What's Changed

  • Fix ImageRenderer x/y copy-paste mistake by @meyfa in #116

Full Changelog: v0.11.0...v0.11.1

v0.11.0

04 Dec 21:09
d86c7e4
Compare
Choose a tag to compare

What's Changed

Features

Fixes

Tooling and Testing

Misc

  • Major SVGPolygonalShape improvements (#105) by @meyfa
  • Miscellaneous refactors by @meyfa

New Contributors

  • @bu4ak made their first contribution in #89

Full Changelog: v0.10.0...v0.11.0

v0.10.0

29 Jun 21:59
acc4cd9
Compare
Choose a tag to compare

What's Changed

General Features

  • Make all types inherit from SVGNodeContainer (b07cbcb)
  • Add background color argument to rasterize method (c2ddd54)

Path Computation

See #77

  • Add arc approximator test for LargeArc flag (3739d11)
  • Rewrite elliptical arc computation (97ff139)
  • Add more asserts for arc approximator flags (c9c2244)
  • Remove redundant fmod in arc approximator (89bc58e)
  • Add radii scaling to arc approximator (0a26b4a)

Misc Changes

  • Remove 'SVG' prefix from renderer and path utility class names (40f1834, acc4cd9)
  • Improve Bezier approximator performance (2bec325)
  • Move rasterizer scale/offset computation to constructor (4ac533a)
  • Optimize Color::clamp (3cd4ecc)
  • Use type casts everywhere instead of intval/floatval (920466c)
  • Skip some unit tests when missing ext-gd (ff91fe6)
  • Fix some PHPMD warnings (c9bc44f)

Meta / Dependencies

  • Migrate Travis to .com (668a9d4)
  • Mark ext-gd and ext-simplexml as optional (#76) (b72a174)
  • Add PHPMD dev dependency (e175741)

Full Changelog: v0.9.1...v0.10.0

v0.9.1

30 Jul 19:06
34401ed
Compare
Choose a tag to compare

What's Changed

Features

Fixes

  • Add missing ext-simplexml composer requirement (PR #57 by @moebrowne) (96a1daf)
  • Fix docblock types and float defaults (PR #58 by @moebrowne) (7a23aff)
  • Travis: Specify dist 'trusty' for PHP 5.4 and 5.5 (856ccd7)
  • Fix #72: error if rect dimensions 0, rounded corners (13e1118)
  • Fix #69: missing attributes if xmlns not set on <svg> (3b36e9f)

Misc

New Contributors

Full Changelog: v0.9.0...v0.9.1

v0.9.0

25 Jul 10:44
Compare
Choose a tag to compare

What's Changed

Breaking changes

  • \SVG\SVGImage is renamed to \SVG\SVG (PR #55) (fc8e34e)
  • \SVG\Nodes\Embedded\SVGImageElement is renamed to \SVG\Nodes\Embedded\SVGImage (PR #55) (1680eca)

Features

  • Implement text rendering, paint-order attribute (PR #54 by @za-ek) (a89d495)
  • Allow arbitrary font-size units for rendering (447e002)
  • Skip text rasterization when no font specified (0a22649)

Style

  • Split SVG.php into Length, Angle, Color, ColorLookup (PR #55) (b94c8b3)
  • Move color clamping into separate function (95edea9)
  • Converge code style / spacing (62123bf, 3ca37fe)

New Contributors

  • @za-ek made their first contribution in #54

Full Changelog: v0.8.0...v0.9.0