mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-23 12:13:04 -05: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 <noreply@anthropic.com>
27 lines
1.7 KiB
Markdown
27 lines
1.7 KiB
Markdown
# 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`), nested `svg`, `g`, `defs`,
|
|
`use` (x/y, `href` / `xlink:href`), `symbol` (through `use`), `title`/`desc`/`metadata` ignored;
|
|
- shapes: `path` (all path data commands incl. elliptical arcs), `rect` (rx/ry), `circle`,
|
|
`ellipse`, `line`, `polyline`, `polygon`;
|
|
- `transform` lists (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`;
|
|
- `linearGradient` and `radialGradient` (with `fx`/`fy` focal point), `gradientUnits`,
|
|
`gradientTransform`, `spreadMethod`, `href` inheritance of stops and attributes;
|
|
- styling through presentation attributes, the `style` attribute 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`).
|