mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-14 19:27:05 -04:00
- effectcraft-psd (L1): PSD/PSB reader from Adobe's published file format spec (layers, groups, masks, blend modes, text engine data, lfx2 effects, fill/adjustment layers, vector masks; 1/8/16/32-bit, RGB/CMYK/Gray/Lab/Indexed, raw/RLE/ZIP) and a minimal writer for fixtures. - File > Import: importAs footage|composition|compositionLayerSizes, layer (Choose Layer); groups -> precomps (pass-through collapses), text -> editable text, styles -> Layer Styles, adjustments -> adjustment layers with effects; UI asks the Import Kind for Photoshop files. - effectcraft-svg (L2): SVG parser (shapes, paths, transforms, use, CSS, gradients) and rasteriser; .svg imports as footage, continuously rasterised when the switch is on. - layer.create: shapesFromVector, shapesFromText, masksFromText, editableText (stub removed). - Disk cache (render::disk_cache): LZ4 content-keyed frames and layer buffers, LRU size limit from prefs, atomic writes, restart persistence; edit.purge clears it, cache.diskStats query; viewer frames read/write it and the timeline shows disk-only frames in blue. Co-Authored-By: Claude Opus 5.5 <[email protected]>
1.7 KiB
1.7 KiB
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).