mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-25 10:36:56 -06:00
The PDF / Illustrator import dialog now offers Composition - Retain Layer Sizes. Each file layer's footage is cropped to its artwork bounds (fills, stroke outlines, images, clips) and positioned to keep its place on the page. Decoding, continuous rasterisation, shape conversion and reload share one crop (effectcraft_pdf::layer_doc_with_sizes), so they agree. Also collapses a match guard in the STL reader for current stable clippy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
effectcraft-svg
SVG import for EffectCraft: .svg files import as footage (rasterised at any scale, so
Continuously Rasterize stays sharp) and Layer ▸ Create ▸ Create Shapes from Vector Layer turns
them into editable shape layers.
Implemented from the W3C Scalable Vector Graphics (SVG) 1.1 (Second Edition) recommendation (16 August 2011) and the SVG 2 candidate recommendation (4 October 2018) for the parts listed here, plus CSS Color Module Level 3 for colour keywords and functions:
- document:
svg(width/height,viewBox,preserveAspectRatio), nestedsvg,g,defs,use(x/y,href/xlink:href),symbol(throughuse),title/desc/metadataignored; - shapes:
path(all path data commands incl. elliptical arcs),rect(rx/ry),circle,ellipse,line,polyline,polygon; transformlists (matrix, translate, scale, rotate with centre, skewX, skewY);- painting:
fill,fill-rule,fill-opacity,stroke,stroke-width,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-dasharray,stroke-dashoffset,stroke-opacity,opacity,display,visibility,color/currentColor; linearGradientandradialGradient(withfx/fyfocal point),gradientUnits,gradientTransform,spreadMethod,hrefinheritance of stops and attributes;- styling through presentation attributes, the
styleattribute and<style>sheets with type, class, id and universal selectors (simple selectors and selector lists).
Not supported (ignored): text, images, filters, clip paths, masks, patterns, markers, animation.
XML parsing uses roxmltree (MIT/Apache-2.0). Test fixtures are original work (see
tests/fixtures/*.attribution).