Releases: meyfa/php-svg
Releases · meyfa/php-svg
v0.14.0
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
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
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
- @beatjaeckle made their first contribution in #169
- @norkunas made their first contribution in #170
- @walidaalhomsi made their first contribution in #172
- @Niellles made their first contribution in #176
Full Changelog: v0.11.3...v0.12.0
v0.11.3
v0.11.2
v0.11.1
v0.11.0
What's Changed
Features
- Add classes for all remaining nodes in SVG spec (0bf3d0f, 907f693) by @meyfa
- Add support for namespaces on children (#62) (2df2cb6, eb3e040, 52ebcee) by @meyfa
- Add basic text-anchor support in renderer (#97) by @meyfa
- Make SVG dimension parameters optional (#104) by @meyfa
- Eliminate constructFromAttributes (#106) by @meyfa
Fixes
- Fix faulty assumption about attribute units (#102) by @meyfa
- Fix dangerous empty() with strings (#83) (6f387c8, 8677058, 0d9c20b) by @meyfa
- Fix namespaced children not added to tree (#113) by @meyfa
Tooling and Testing
- Add more annotations (#90, #107) by @meyfa
- Improve Travis config (d143a17, #95, #99) by @meyfa
- Setup PHPCS for syntax style checking (#91) by @meyfa
- Use consistent tooling config file names (#93) by @meyfa
Misc
New Contributors
Full Changelog: v0.10.0...v0.11.0
v0.10.0
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
What's Changed
Features
- Add class for svg tag 'a' (PR #61 by @pkertyxy) (1fd87d7)
- PR #66 by @MatthiasKuehneEllerhold (c0d075d):
- Implement embedded images (via
SVGImage
) and embedded fonts (viaSVGFont
) - Add
SVGClipPath
- Add
SVGImage::fromString()
- Implement embedded images (via
- Add constructor to
SVGTitle
class (34401ed)
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
- @moebrowne made their first contribution in #57
- @pkertyxy made their first contribution in #61
- @MatthiasKuehneEllerhold made their first contribution in #66
- @axis80 made their first contribution in #67
Full Changelog: v0.9.0...v0.9.1
v0.9.0
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
Full Changelog: v0.8.0...v0.9.0