@imgly/codesign-mcp 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -1
- package/assets/docs/guide/SKILL.md +45 -53
- package/assets/docs/guide/animation/create/base.md +234 -243
- package/assets/docs/guide/animation/create/text.md +250 -231
- package/assets/docs/guide/animation/create.md +197 -231
- package/assets/docs/guide/animation/edit.md +196 -271
- package/assets/docs/guide/animation/types.md +182 -185
- package/assets/docs/guide/animation.md +9 -6
- package/assets/docs/guide/api/AssetAPI.md +7 -53
- package/assets/docs/guide/api/BlockAPI.md +725 -648
- package/assets/docs/guide/api/CreativeEngine.md +7 -16
- package/assets/docs/guide/api/EditorAPI.md +32 -93
- package/assets/docs/guide/api/EventAPI.md +1 -2
- package/assets/docs/guide/api/SceneAPI.md +47 -98
- package/assets/docs/guide/api/VariableAPI.md +1 -4
- package/assets/docs/guide/api/node/classes/assetapi.md +1090 -0
- package/assets/docs/guide/api/node/classes/blockapi.md +12965 -0
- package/assets/docs/guide/api/node/classes/creativeengine.md +319 -0
- package/assets/docs/guide/api/node/classes/editorapi.md +3417 -0
- package/assets/docs/guide/api/node/classes/engineactions.md +319 -0
- package/assets/docs/guide/api/node/classes/eventapi.md +56 -0
- package/assets/docs/guide/api/node/classes/sceneapi.md +1370 -0
- package/assets/docs/guide/api/node/classes/variableapi.md +143 -0
- package/assets/docs/guide/api/node/enumerations/compressionformat.md +23 -0
- package/assets/docs/guide/api/node/enumerations/compressionlevel.md +24 -0
- package/assets/docs/guide/api/node/functions/iscmykcolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isrgbacolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isspotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/addvideooptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/applyassetoptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/asset.md +30 -0
- package/assets/docs/guide/api/node/interfaces/assetbooleanproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcmykcolor.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetcolorproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcontentaspectratio.md +23 -0
- package/assets/docs/guide/api/node/interfaces/assetdefinition.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetenumproperty.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedaspectratio.md +24 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedsize.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetfreeaspectratio.md +22 -0
- package/assets/docs/guide/api/node/interfaces/assetnumberproperty.md +28 -0
- package/assets/docs/guide/api/node/interfaces/assetpayload.md +27 -0
- package/assets/docs/guide/api/node/interfaces/assetquerydata.md +32 -0
- package/assets/docs/guide/api/node/interfaces/assetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/assetrgbcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsource.md +111 -0
- package/assets/docs/guide/api/node/interfaces/assetspotcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsqueryresult.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetstringproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepreset.md +39 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepresetanimation.md +23 -0
- package/assets/docs/guide/api/node/interfaces/audiotrackinfo.md +32 -0
- package/assets/docs/guide/api/node/interfaces/blockevent.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateerror.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstatepending.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateready.md +25 -0
- package/assets/docs/guide/api/node/interfaces/buffer.md +26 -0
- package/assets/docs/guide/api/node/interfaces/characterinkbox.md +29 -0
- package/assets/docs/guide/api/node/interfaces/cmykcolor.md +34 -0
- package/assets/docs/guide/api/node/interfaces/completeassetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/configuration.md +38 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolorsoptions.md +23 -0
- package/assets/docs/guide/api/node/interfaces/engineactioninfo.md +24 -0
- package/assets/docs/guide/api/node/interfaces/engineactionsregistry.md +18 -0
- package/assets/docs/guide/api/node/interfaces/engineplugin.md +30 -0
- package/assets/docs/guide/api/node/interfaces/font.md +27 -0
- package/assets/docs/guide/api/node/interfaces/fontmetrics.md +32 -0
- package/assets/docs/guide/api/node/interfaces/gradientcolorstop.md +28 -0
- package/assets/docs/guide/api/node/interfaces/logger.md +39 -0
- package/assets/docs/guide/api/node/interfaces/pageduration.md +23 -0
- package/assets/docs/guide/api/node/interfaces/range.md +23 -0
- package/assets/docs/guide/api/node/interfaces/rgbacolor.md +32 -0
- package/assets/docs/guide/api/node/interfaces/rgbcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/settings.md +126 -0
- package/assets/docs/guide/api/node/interfaces/size2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/source.md +24 -0
- package/assets/docs/guide/api/node/interfaces/spotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/textdecorationconfig.md +31 -0
- package/assets/docs/guide/api/node/interfaces/textfontsizeoptions.md +24 -0
- package/assets/docs/guide/api/node/interfaces/textruninfo.md +33 -0
- package/assets/docs/guide/api/node/interfaces/transientresource.md +26 -0
- package/assets/docs/guide/api/node/interfaces/typeface.md +23 -0
- package/assets/docs/guide/api/node/interfaces/vec2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/vec3.md +22 -0
- package/assets/docs/guide/api/node/type-aliases/addimageoptions.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/animationbaselinedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationblockswipetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationeasing.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationentry.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationgrowdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationjumploopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationkenburnsdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationmergetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationspindirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationspinloopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypewritertextwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationwipedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/applicationmimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/assetcolor.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/assetfilter.md +47 -0
- package/assets/docs/guide/api/node/type-aliases/assetgroups.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetmetadata.md +42 -0
- package/assets/docs/guide/api/node/type-aliases/assetproperty.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertyfilter.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertypath.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetanimationproperties.md +34 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetproperties.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetpropertyvalue.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetscalableproperty.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/assettransformpreset.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/asyncuriresolver.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/audioexportoptions.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/audiofromvideooptions.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/audiomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/blendmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/blockenumtype.md +63 -0
- package/assets/docs/guide/api/node/type-aliases/blockstate.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/blurtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/booleanoperation.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/boolpropertyname.md +79 -0
- package/assets/docs/guide/api/node/type-aliases/cameraclampingovershootmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionhorizontalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/cmyk.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/color.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/colorpickercolormode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/colorpropertyname.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/colorspace.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/contentfillmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmomovehandlevisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoresizehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmorotatehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoscalehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/createsceneoptions.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/cutoutoperation.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/cutouttype.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/defaultassetsourceid.md +37 -0
- package/assets/docs/guide/api/node/type-aliases/demoassetsourceid.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/designblockid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/designunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doubleclickselectionmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doublepropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/dropshadowoptions.md +32 -0
- package/assets/docs/guide/api/node/type-aliases/editmode.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/effecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/engineactionid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/enginecustomactionfunction.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/engineplugincontext.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/enumpropertyname.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/enumvalues.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/exportoptions.md +57 -0
- package/assets/docs/guide/api/node/type-aliases/fillpixelstreamorientation.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/filltype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/filltypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/filltypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/floatpropertyname.md +184 -0
- package/assets/docs/guide/api/node/type-aliases/fontsizeunit.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/fontstyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/fontweight.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/gradientstoprgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/heightmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/hexcolorstring.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyupdate.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontaltextalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/imagemimetype.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/intpropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/liststyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/locale.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/loglevel.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/mimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/objecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypelonghand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypeshorthand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/optionalprefix.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/pageguidessource.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/palettecolor.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/positionmode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/positionxmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/positionymode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/propertytype.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/rgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/rolestring.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/scenefontsizeunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenelayout.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenemode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scope.md +50 -0
- package/assets/docs/guide/api/node/type-aliases/settingboolpropertyname.md +62 -0
- package/assets/docs/guide/api/node/type-aliases/settingcolorpropertyname.md +38 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumpropertyname.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumtype.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumvalues.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingfloatpropertyname.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/settingintpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingkey.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingsbool.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolor.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolorrgba.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/settingsenum.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsfloat.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsint.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsstring.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingstringpropertyname.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/settingtype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingvaluetype.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/shapetype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/shapevectorpathfillrule.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/sizemode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/sortingorder.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/sourcesetpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/splitoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/stringpropertyname.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/strokecap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokecornergeometry.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashstartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeposition.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/syncuriresolver.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/textanimationwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/textcase.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationline.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationstyle.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/textverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/timelinetrackvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchpinchaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchrotateaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/typefacedefinition.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/verticalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/verticalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/videoexportoptions.md +54 -0
- package/assets/docs/guide/api/node/type-aliases/videomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/widthmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/xywh.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/zoomautofitaxis.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/zoomoptions.md +27 -0
- package/assets/docs/guide/api/node/variables/animation_types.md +21 -0
- package/assets/docs/guide/api/node/variables/animationbaselinedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationblockswipetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationeasingvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationgrowdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationjumploopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationkenburnsdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationmergetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspindirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspinloopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationtypewritertextwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationwipedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blendmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blur_types.md +21 -0
- package/assets/docs/guide/api/node/variables/cameraclampingovershootmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionhorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/colorpickercolormodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/contentfillmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmomovehandlevisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoresizehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmorotatehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoscalehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/cutouttypevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/design_block_types.md +21 -0
- package/assets/docs/guide/api/node/variables/doubleclickselectionmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/effect_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fill_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fillpixelstreamorientationvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/heightmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/horizontalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/loglevel.md +37 -0
- package/assets/docs/guide/api/node/variables/mimetype.md +41 -0
- package/assets/docs/guide/api/node/variables/pageguidessourcevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionxmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionymodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenedesignunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenefontsizeunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenelayoutvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenemodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/shape_types.md +21 -0
- package/assets/docs/guide/api/node/variables/shapevectorpathfillrulevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecornergeometryvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashstartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokeendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokepositionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textanimationwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/texthorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/timelinetrackvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchpinchactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchrotateactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/verticalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/widthmodevalues.md +18 -0
- package/assets/docs/guide/api/types.md +5 -9
- package/assets/docs/guide/api-reference/overview.md +7 -7
- package/assets/docs/guide/automation/auto-resize.md +263 -300
- package/assets/docs/guide/automation/data-merge.md +246 -275
- package/assets/docs/guide/automation/design-generation.md +102 -31
- package/assets/docs/guide/automation/multi-image-generation.md +758 -0
- package/assets/docs/guide/automation/overview.md +21 -4
- package/assets/docs/guide/automation.md +10 -5
- package/assets/docs/guide/capabilities.md +6 -4
- package/assets/docs/guide/colors/adjust.md +247 -249
- package/assets/docs/guide/colors/apply.md +127 -138
- package/assets/docs/guide/colors/basics.md +126 -150
- package/assets/docs/guide/colors/conversion.md +171 -177
- package/assets/docs/guide/colors/create-color-palette.md +244 -245
- package/assets/docs/guide/colors/extract-colors.md +144 -0
- package/assets/docs/guide/colors/for-print/cmyk.md +292 -352
- package/assets/docs/guide/colors/for-print/spot.md +521 -578
- package/assets/docs/guide/colors/for-print.md +9 -4
- package/assets/docs/guide/colors/for-screen/p3.md +12 -10
- package/assets/docs/guide/colors/for-screen/srgb.md +107 -133
- package/assets/docs/guide/colors/for-screen.md +9 -4
- package/assets/docs/guide/colors/overview.md +6 -4
- package/assets/docs/guide/colors/replace.md +381 -419
- package/assets/docs/guide/colors.md +9 -4
- package/assets/docs/guide/compatibility.md +7 -5
- package/assets/docs/guide/concepts/architecture.md +17 -15
- package/assets/docs/guide/concepts/assets.md +152 -140
- package/assets/docs/guide/concepts/blocks.md +227 -323
- package/assets/docs/guide/concepts/buffers.md +147 -276
- package/assets/docs/guide/concepts/design-units.md +95 -145
- package/assets/docs/guide/concepts/editing-workflow.md +69 -183
- package/assets/docs/guide/concepts/events.md +80 -122
- package/assets/docs/guide/concepts/headless-mode.md +237 -0
- package/assets/docs/guide/concepts/pages.md +137 -127
- package/assets/docs/guide/concepts/resources.md +156 -217
- package/assets/docs/guide/concepts/scenes.md +191 -210
- package/assets/docs/guide/concepts/templating.md +118 -74
- package/assets/docs/guide/concepts/terminology.md +49 -47
- package/assets/docs/guide/concepts/undo-and-history.md +229 -303
- package/assets/docs/guide/concepts.md +9 -7
- package/assets/docs/guide/configuration.md +252 -380
- package/assets/docs/guide/conversion/overview.md +33 -4
- package/assets/docs/guide/conversion/to-base64.md +127 -167
- package/assets/docs/guide/conversion/to-pdf.md +24 -474
- package/assets/docs/guide/conversion/to-png.md +168 -211
- package/assets/docs/guide/conversion.md +9 -4
- package/assets/docs/guide/create-audio/audio/add-music.md +301 -327
- package/assets/docs/guide/create-audio/audio/add-sound-effects.md +475 -359
- package/assets/docs/guide/create-audio/audio/loop.md +232 -272
- package/assets/docs/guide/create-composition/add-background.md +237 -239
- package/assets/docs/guide/create-composition/blend-modes.md +118 -209
- package/assets/docs/guide/create-composition/collage.md +538 -320
- package/assets/docs/guide/create-composition/group-and-ungroup.md +216 -261
- package/assets/docs/guide/create-composition/layer-management.md +219 -257
- package/assets/docs/guide/create-composition/layout.md +513 -315
- package/assets/docs/guide/create-composition/lock-design.md +90 -109
- package/assets/docs/guide/create-composition/multi-page.md +133 -113
- package/assets/docs/guide/create-composition/overview.md +16 -4
- package/assets/docs/guide/create-composition/programmatic.md +288 -344
- package/assets/docs/guide/create-composition.md +10 -5
- package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +443 -569
- package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +567 -470
- package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +179 -516
- package/assets/docs/guide/create-templates/add-dynamic-content.md +226 -224
- package/assets/docs/guide/create-templates/add-to-template-library.md +183 -193
- package/assets/docs/guide/create-templates/edit-or-remove.md +297 -303
- package/assets/docs/guide/create-templates/from-scratch.md +207 -268
- package/assets/docs/guide/create-templates/import/from-scene-file.md +158 -236
- package/assets/docs/guide/create-templates/import.md +145 -161
- package/assets/docs/guide/create-templates/lock.md +42 -295
- package/assets/docs/guide/create-templates/overview.md +33 -4
- package/assets/docs/guide/create-templates.md +9 -5
- package/assets/docs/guide/create-video/audio/adjust-speed.md +157 -207
- package/assets/docs/guide/create-video/audio/adjust-volume.md +116 -227
- package/assets/docs/guide/create-video/control.md +352 -193
- package/assets/docs/guide/create-video/limitations.md +175 -280
- package/assets/docs/guide/create-video.md +11 -10
- package/assets/docs/guide/edit-image/add-watermark.md +283 -330
- package/assets/docs/guide/edit-image/overview.md +29 -4
- package/assets/docs/guide/edit-image/remove-bg.md +283 -337
- package/assets/docs/guide/edit-image/replace-colors.md +424 -502
- package/assets/docs/guide/edit-image/transform/crop.md +463 -402
- package/assets/docs/guide/edit-image/transform/flip.md +353 -0
- package/assets/docs/guide/edit-image/transform/move.md +143 -100
- package/assets/docs/guide/edit-image/transform/resize.md +118 -88
- package/assets/docs/guide/edit-image/transform/rotate.md +132 -165
- package/assets/docs/guide/edit-image/transform/scale.md +230 -228
- package/assets/docs/guide/edit-image/transform.md +10 -5
- package/assets/docs/guide/edit-image.md +11 -7
- package/assets/docs/guide/edit-video/add-captions.md +344 -421
- package/assets/docs/guide/edit-video/add-watermark.md +312 -258
- package/assets/docs/guide/edit-video/join-and-arrange.md +237 -371
- package/assets/docs/guide/edit-video/redaction.md +419 -385
- package/assets/docs/guide/edit-video/split.md +243 -493
- package/assets/docs/guide/edit-video/transform/crop.md +21 -352
- package/assets/docs/guide/edit-video/transform/flip.md +102 -76
- package/assets/docs/guide/edit-video/transform/move.md +258 -310
- package/assets/docs/guide/edit-video/transform/resize.md +264 -428
- package/assets/docs/guide/edit-video/transform/rotate.md +265 -228
- package/assets/docs/guide/edit-video/transform/scale.md +320 -417
- package/assets/docs/guide/edit-video/transform.md +10 -6
- package/assets/docs/guide/edit-video/trim.md +448 -494
- package/assets/docs/guide/engine-interface.md +51 -62
- package/assets/docs/guide/export-save-publish/create-thumbnail.md +148 -184
- package/assets/docs/guide/export-save-publish/export/compress.md +161 -559
- package/assets/docs/guide/export-save-publish/export/overview.md +224 -373
- package/assets/docs/guide/export-save-publish/export/partial-export.md +386 -577
- package/assets/docs/guide/export-save-publish/export/size-limits.md +215 -310
- package/assets/docs/guide/export-save-publish/export/to-jpeg.md +132 -213
- package/assets/docs/guide/export-save-publish/export/to-pdf.md +139 -267
- package/assets/docs/guide/export-save-publish/export/to-png.md +121 -165
- package/assets/docs/guide/export-save-publish/export/to-raw-data.md +187 -234
- package/assets/docs/guide/export-save-publish/export/to-webp.md +160 -190
- package/assets/docs/guide/export-save-publish/export/with-color-mask.md +359 -203
- package/assets/docs/guide/export-save-publish/export.md +14 -11
- package/assets/docs/guide/export-save-publish/for-printing.md +141 -237
- package/assets/docs/guide/export-save-publish/for-social-media.md +124 -261
- package/assets/docs/guide/export-save-publish/pre-export-validation.md +436 -522
- package/assets/docs/guide/export-save-publish/save.md +167 -226
- package/assets/docs/guide/export-save-publish/store-custom-metadata.md +97 -162
- package/assets/docs/guide/file-format-support.md +9 -9
- package/assets/docs/guide/fills/color.md +370 -347
- package/assets/docs/guide/fills/image.md +167 -196
- package/assets/docs/guide/fills/overview.md +6 -4
- package/assets/docs/guide/fills/video.md +286 -438
- package/assets/docs/guide/fills.md +12 -8
- package/assets/docs/guide/filters-and-effects/apply.md +598 -664
- package/assets/docs/guide/filters-and-effects/blur.md +261 -159
- package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +194 -293
- package/assets/docs/guide/filters-and-effects/create-custom-filters.md +548 -466
- package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +176 -244
- package/assets/docs/guide/filters-and-effects/distortion.md +317 -384
- package/assets/docs/guide/filters-and-effects/duotone.md +221 -217
- package/assets/docs/guide/filters-and-effects/gradients.md +670 -813
- package/assets/docs/guide/filters-and-effects/overview.md +7 -7
- package/assets/docs/guide/filters-and-effects/support.md +97 -132
- package/assets/docs/guide/filters-and-effects.md +11 -6
- package/assets/docs/guide/get-started/agent-skills.md +20 -18
- package/assets/docs/guide/get-started/build-with-ai.md +7 -4
- package/assets/docs/guide/get-started/bun.md +219 -0
- package/assets/docs/guide/get-started/deno.md +161 -0
- package/assets/docs/guide/get-started/mcp-server.md +6 -4
- package/assets/docs/guide/get-started/overview.md +11 -6
- package/assets/docs/guide/get-started/vanilla-aws-lambda.md +506 -0
- package/assets/docs/guide/get-started/vanilla-clone-github-project.md +124 -0
- package/assets/docs/guide/get-started/vanilla.md +235 -0
- package/assets/docs/guide/guides/export-save-publish/export/audio.md +80 -66
- package/assets/docs/guide/guides.md +10 -9
- package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +259 -288
- package/assets/docs/guide/import-media/concepts.md +20 -38
- package/assets/docs/guide/import-media/content-json-schema.md +145 -125
- package/assets/docs/guide/import-media/default-assets.md +113 -161
- package/assets/docs/guide/import-media/edit-or-remove-assets.md +391 -395
- package/assets/docs/guide/import-media/file-format-support.md +78 -61
- package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +273 -244
- package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +152 -222
- package/assets/docs/guide/import-media/from-remote-source.md +9 -11
- package/assets/docs/guide/import-media/overview.md +5 -5
- package/assets/docs/guide/import-media/retrieve-mimetype.md +216 -108
- package/assets/docs/guide/import-media/size-limits.md +6 -4
- package/assets/docs/guide/import-media/source-sets.md +190 -251
- package/assets/docs/guide/import-media.md +10 -8
- package/assets/docs/guide/insert-media/audio.md +202 -195
- package/assets/docs/guide/insert-media/images.md +190 -188
- package/assets/docs/guide/insert-media/position-and-align.md +284 -551
- package/assets/docs/guide/insert-media/shapes-or-stickers.md +402 -418
- package/assets/docs/guide/insert-media/videos.md +236 -203
- package/assets/docs/guide/insert-media.md +10 -5
- package/assets/docs/guide/key-capabilities.md +36 -4
- package/assets/docs/guide/key-concepts.md +6 -4
- package/assets/docs/guide/licensing.md +6 -4
- package/assets/docs/guide/llms-txt.md +11 -7
- package/assets/docs/guide/open-the-editor/blank-canvas.md +102 -63
- package/assets/docs/guide/open-the-editor/from-image.md +157 -127
- package/assets/docs/guide/open-the-editor/from-template.md +131 -92
- package/assets/docs/guide/open-the-editor/from-video.md +204 -212
- package/assets/docs/guide/open-the-editor/import-design/from-archive.md +310 -360
- package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +716 -513
- package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +667 -695
- package/assets/docs/guide/open-the-editor/import-design.md +228 -266
- package/assets/docs/guide/open-the-editor/load-scene.md +72 -68
- package/assets/docs/guide/open-the-editor/overview.md +6 -4
- package/assets/docs/guide/open-the-editor/uri-resolver.md +160 -251
- package/assets/docs/guide/open-the-editor.md +11 -9
- package/assets/docs/guide/outlines/overview.md +12 -4
- package/assets/docs/guide/outlines/shadows-and-glows.md +105 -410
- package/assets/docs/guide/outlines/strokes.md +218 -166
- package/assets/docs/guide/outlines.md +9 -4
- package/assets/docs/guide/overview.md +14 -6
- package/assets/docs/guide/performance.md +220 -113
- package/assets/docs/guide/plugins/print-ready-pdf.md +273 -368
- package/assets/docs/guide/plugins.md +10 -16
- package/assets/docs/guide/rules/asset-handling.md +7 -18
- package/assets/docs/guide/rules/common-pitfalls.md +25 -42
- package/assets/docs/guide/rules/content-fill-mode.md +4 -4
- package/assets/docs/guide/rules/enforce-brand-guidelines.md +398 -567
- package/assets/docs/guide/rules/lock-content.md +188 -231
- package/assets/docs/guide/rules/moderate-content.md +580 -571
- package/assets/docs/guide/rules/overview.md +345 -380
- package/assets/docs/guide/rules/silent-init-errors.md +4 -1
- package/assets/docs/guide/rules/verify-properties-before-use.md +2 -11
- package/assets/docs/guide/rules.md +10 -5
- package/assets/docs/guide/security.md +7 -5
- package/assets/docs/guide/serve-assets.md +57 -284
- package/assets/docs/guide/settings.md +96 -74
- package/assets/docs/guide/shapes.md +10 -5
- package/assets/docs/guide/stickers-and-shapes/combine.md +397 -583
- package/assets/docs/guide/stickers-and-shapes/create-cutout.md +181 -268
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +418 -431
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +147 -226
- package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +138 -123
- package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +151 -149
- package/assets/docs/guide/stickers.md +9 -4
- package/assets/docs/guide/text/add.md +470 -482
- package/assets/docs/guide/text/adjust-spacing.md +179 -214
- package/assets/docs/guide/text/auto-size.md +210 -271
- package/assets/docs/guide/text/edit.md +294 -309
- package/assets/docs/guide/text/effects.md +154 -190
- package/assets/docs/guide/text/emojis.md +199 -232
- package/assets/docs/guide/text/language-support.md +369 -382
- package/assets/docs/guide/text/overview.md +41 -4
- package/assets/docs/guide/text/styling.md +239 -273
- package/assets/docs/guide/text/text-designs.md +405 -544
- package/assets/docs/guide/text.md +10 -9
- package/assets/docs/guide/to-v1-19.md +12 -10
- package/assets/docs/guide/upgrade.md +8 -9
- package/assets/docs/guide/use-templates/apply-template.md +174 -163
- package/assets/docs/guide/use-templates/generate.md +171 -152
- package/assets/docs/guide/use-templates/overview.md +32 -4
- package/assets/docs/guide/use-templates/programmatic.md +266 -301
- package/assets/docs/guide/use-templates/replace-content.md +181 -171
- package/assets/docs/guide/what-is-cesdk.md +71 -282
- package/assets/docs/handbook/SKILL.md +24 -0
- package/dist/assets/inline.generated.d.ts.map +1 -1
- package/dist/assets/inline.generated.js +544 -406
- package/dist/assets/inline.generated.js.map +1 -1
- package/dist/assets/load-browser.d.ts +1 -1
- package/dist/assets/load-browser.js +1 -1
- package/dist/assets/load-browser.js.map +1 -1
- package/dist/assets/load-node.d.ts +1 -1
- package/dist/assets/load-node.js +1 -1
- package/dist/assets/load-node.js.map +1 -1
- package/dist/cli/http.d.ts.map +1 -1
- package/dist/cli/http.js +4 -28
- package/dist/cli/http.js.map +1 -1
- package/dist/cli/redirect-console.d.ts +1 -1
- package/dist/cli/redirect-console.d.ts.map +1 -1
- package/dist/cli/redirect-console.js +12 -3
- package/dist/cli/redirect-console.js.map +1 -1
- package/dist/cli/resolve-license.d.ts.map +1 -1
- package/dist/cli/resolve-license.js +8 -6
- package/dist/cli/resolve-license.js.map +1 -1
- package/dist/cli/stdio.d.ts +9 -0
- package/dist/cli/stdio.d.ts.map +1 -1
- package/dist/cli/stdio.js +48 -4
- package/dist/cli/stdio.js.map +1 -1
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +11 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -1
- package/dist/config.js.map +1 -1
- package/dist/diagnostics/bundle.d.ts +10 -0
- package/dist/diagnostics/bundle.d.ts.map +1 -0
- package/dist/diagnostics/bundle.js +148 -0
- package/dist/diagnostics/bundle.js.map +1 -0
- package/dist/diagnostics/compose.d.ts +3 -0
- package/dist/diagnostics/compose.d.ts.map +1 -0
- package/dist/diagnostics/compose.js +15 -0
- package/dist/diagnostics/compose.js.map +1 -0
- package/dist/diagnostics/events.d.ts +34 -0
- package/dist/diagnostics/events.d.ts.map +1 -0
- package/dist/diagnostics/events.js +3 -0
- package/dist/diagnostics/events.js.map +1 -0
- package/dist/diagnostics/file-sink.d.ts +38 -0
- package/dist/diagnostics/file-sink.d.ts.map +1 -0
- package/dist/diagnostics/file-sink.js +157 -0
- package/dist/diagnostics/file-sink.js.map +1 -0
- package/dist/diagnostics/redact.d.ts +7 -0
- package/dist/diagnostics/redact.d.ts.map +1 -0
- package/dist/diagnostics/redact.js +43 -0
- package/dist/diagnostics/redact.js.map +1 -0
- package/dist/diagnostics/tool-call-adapter.d.ts +4 -0
- package/dist/diagnostics/tool-call-adapter.d.ts.map +1 -0
- package/dist/diagnostics/tool-call-adapter.js +21 -0
- package/dist/diagnostics/tool-call-adapter.js.map +1 -0
- package/dist/engine/cesdk-adapter.d.ts +5 -1
- package/dist/engine/cesdk-adapter.d.ts.map +1 -1
- package/dist/engine/cesdk-adapter.js +9 -2
- package/dist/engine/cesdk-adapter.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +4 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/scene-resource-schemes.d.ts +2 -0
- package/dist/engine/scene-resource-schemes.d.ts.map +1 -0
- package/dist/engine/scene-resource-schemes.js +20 -0
- package/dist/engine/scene-resource-schemes.js.map +1 -0
- package/dist/http/server.d.ts +0 -6
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +1 -2
- package/dist/http/server.js.map +1 -1
- package/dist/server.d.ts +0 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +4 -60
- package/dist/server.js.map +1 -1
- package/dist/test/scripts/changelog-add.d.ts +8 -0
- package/dist/test/scripts/changelog-add.d.ts.map +1 -0
- package/dist/test/scripts/changelog-add.js +50 -0
- package/dist/test/scripts/changelog-add.js.map +1 -0
- package/dist/test/scripts/changelog-collate.d.ts +38 -0
- package/dist/test/scripts/changelog-collate.d.ts.map +1 -0
- package/dist/test/scripts/changelog-collate.js +171 -0
- package/dist/test/scripts/changelog-collate.js.map +1 -0
- package/dist/test/test/changelog.test.d.ts +2 -0
- package/dist/test/test/changelog.test.d.ts.map +1 -0
- package/dist/test/test/changelog.test.js +293 -0
- package/dist/test/test/changelog.test.js.map +1 -0
- package/dist/test/test/cli/dispatcher.test.js +10 -3
- package/dist/test/test/cli/dispatcher.test.js.map +1 -1
- package/dist/test/test/cli/redirect-console.test.js +31 -0
- package/dist/test/test/cli/redirect-console.test.js.map +1 -1
- package/dist/test/test/cli/resolve-license.test.js +10 -1
- package/dist/test/test/cli/resolve-license.test.js.map +1 -1
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts +2 -0
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts.map +1 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js +31 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js.map +1 -0
- package/dist/test/test/config.test.js +17 -13
- package/dist/test/test/config.test.js.map +1 -1
- package/dist/test/test/diagnostics/bundle.test.d.ts +2 -0
- package/dist/test/test/diagnostics/bundle.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/bundle.test.js +53 -0
- package/dist/test/test/diagnostics/bundle.test.js.map +1 -0
- package/dist/test/test/diagnostics/compose.test.d.ts +2 -0
- package/dist/test/test/diagnostics/compose.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/compose.test.js +31 -0
- package/dist/test/test/diagnostics/compose.test.js.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts +2 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.js +113 -0
- package/dist/test/test/diagnostics/file-sink.test.js.map +1 -0
- package/dist/test/test/diagnostics/redact.test.d.ts +2 -0
- package/dist/test/test/diagnostics/redact.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/redact.test.js +59 -0
- package/dist/test/test/diagnostics/redact.test.js.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts +2 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js +34 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts +2 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.js +32 -0
- package/dist/test/test/engine/cesdk-adapter.test.js.map +1 -0
- package/dist/test/test/handbook-contract.test.js +6 -2
- package/dist/test/test/handbook-contract.test.js.map +1 -1
- package/dist/test/test/http/server.test.js +0 -36
- package/dist/test/test/http/server.test.js.map +1 -1
- package/dist/test/test/http/workspace-auth.test.js +0 -1
- package/dist/test/test/http/workspace-auth.test.js.map +1 -1
- package/dist/test/test/server.test.js +0 -40
- package/dist/test/test/server.test.js.map +1 -1
- package/dist/test/test/tools/edit-harness.d.ts +14 -0
- package/dist/test/test/tools/edit-harness.d.ts.map +1 -0
- package/dist/test/test/tools/edit-harness.js +30 -0
- package/dist/test/test/tools/edit-harness.js.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.js +46 -0
- package/dist/test/test/tools/edit.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/export-harness.d.ts +13 -0
- package/dist/test/test/tools/export-harness.d.ts.map +1 -0
- package/dist/test/test/tools/export-harness.js +27 -0
- package/dist/test/test/tools/export-harness.js.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.js +65 -0
- package/dist/test/test/tools/export.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/import.test.d.ts +2 -0
- package/dist/test/test/tools/import.test.d.ts.map +1 -0
- package/dist/test/test/tools/import.test.js +122 -0
- package/dist/test/test/tools/import.test.js.map +1 -0
- package/dist/test/test/tools/index.test.js +78 -16
- package/dist/test/test/tools/index.test.js.map +1 -1
- package/dist/test/test/tools/load.integration.test.d.ts +2 -0
- package/dist/test/test/tools/load.integration.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.integration.test.js +165 -0
- package/dist/test/test/tools/load.integration.test.js.map +1 -0
- package/dist/test/test/tools/load.test.d.ts +2 -0
- package/dist/test/test/tools/load.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.test.js +387 -0
- package/dist/test/test/tools/load.test.js.map +1 -0
- package/dist/test/test/tools/preview-harness.d.ts +9 -0
- package/dist/test/test/tools/preview-harness.d.ts.map +1 -0
- package/dist/test/test/tools/preview-harness.js +23 -0
- package/dist/test/test/tools/preview-harness.js.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.js +36 -0
- package/dist/test/test/tools/preview.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.d.ts +13 -0
- package/dist/test/test/tools/schema-best-practices.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.js +169 -0
- package/dist/test/test/tools/schema-best-practices.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts +3 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.js +194 -0
- package/dist/test/test/tools/schema-best-practices.test.js.map +1 -0
- package/dist/test/test/tools/spans.test.d.ts +2 -0
- package/dist/test/test/tools/spans.test.d.ts.map +1 -0
- package/dist/test/test/tools/spans.test.js +84 -0
- package/dist/test/test/tools/spans.test.js.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts +2 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js +19 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js.map +1 -0
- package/dist/test/test/viewer/config-route.test.d.ts +2 -0
- package/dist/test/test/viewer/config-route.test.d.ts.map +1 -0
- package/dist/test/test/viewer/config-route.test.js +28 -0
- package/dist/test/test/viewer/config-route.test.js.map +1 -0
- package/dist/test/test/viewer/spa-version.test.d.ts +2 -0
- package/dist/test/test/viewer/spa-version.test.d.ts.map +1 -0
- package/dist/test/test/viewer/spa-version.test.js +14 -0
- package/dist/test/test/viewer/spa-version.test.js.map +1 -0
- package/dist/test/test/workspace/content-hash.test.d.ts +2 -0
- package/dist/test/test/workspace/content-hash.test.d.ts.map +1 -0
- package/dist/test/test/workspace/content-hash.test.js +17 -0
- package/dist/test/test/workspace/content-hash.test.js.map +1 -0
- package/dist/test/tsconfig.test.tsbuildinfo +1 -1
- package/dist/test/vitest.config.js +1 -1
- package/dist/test/vitest.config.js.map +1 -1
- package/dist/tools/asset-generate.d.ts.map +1 -1
- package/dist/tools/asset-generate.js +1 -8
- package/dist/tools/asset-generate.js.map +1 -1
- package/dist/tools/edit.d.ts +3 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +145 -96
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/export.d.ts +3 -0
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +146 -108
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/import.d.ts +12 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +144 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +44 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/load.d.ts +26 -0
- package/dist/tools/load.d.ts.map +1 -0
- package/dist/tools/load.js +400 -0
- package/dist/tools/load.js.map +1 -0
- package/dist/tools/preview.d.ts +3 -0
- package/dist/tools/preview.d.ts.map +1 -1
- package/dist/tools/preview.js +79 -44
- package/dist/tools/preview.js.map +1 -1
- package/dist/tools/result.d.ts +1 -1
- package/dist/tools/result.js +2 -2
- package/dist/tools/result.js.map +1 -1
- package/dist/tools/spans.d.ts +45 -0
- package/dist/tools/spans.d.ts.map +1 -0
- package/dist/tools/spans.js +77 -0
- package/dist/tools/spans.js.map +1 -0
- package/dist/tools/telemetry-wrapper.d.ts +4 -0
- package/dist/tools/telemetry-wrapper.d.ts.map +1 -0
- package/dist/tools/telemetry-wrapper.js +43 -0
- package/dist/tools/telemetry-wrapper.js.map +1 -0
- package/dist/viewer/cesdk-cdn.d.ts +16 -0
- package/dist/viewer/cesdk-cdn.d.ts.map +1 -0
- package/dist/viewer/cesdk-cdn.js +30 -0
- package/dist/viewer/cesdk-cdn.js.map +1 -0
- package/dist/viewer/router.d.ts +6 -0
- package/dist/viewer/router.d.ts.map +1 -1
- package/dist/viewer/router.js +4 -1
- package/dist/viewer/router.js.map +1 -1
- package/dist/viewer/spa-assets.generated.d.ts.map +1 -1
- package/dist/viewer/spa-assets.generated.js +2 -3
- package/dist/viewer/spa-assets.generated.js.map +1 -1
- package/dist/workspace/content-hash.d.ts +2 -0
- package/dist/workspace/content-hash.d.ts.map +1 -0
- package/dist/workspace/content-hash.js +15 -0
- package/dist/workspace/content-hash.js.map +1 -0
- package/package.json +18 -9
- package/assets/docs/guide/actions.md +0 -1038
- package/assets/docs/guide/animation/overview.md +0 -22
- package/assets/docs/guide/automation/batch-processing.md +0 -474
- package/assets/docs/guide/browser-support.md +0 -38
- package/assets/docs/guide/concepts/edit-modes.md +0 -431
- package/assets/docs/guide/concepts/headless-mode/browser.md +0 -291
- package/assets/docs/guide/create-audio/audio.md +0 -336
- package/assets/docs/guide/create-video/overview.md +0 -224
- package/assets/docs/guide/create-video/timeline-editor.md +0 -622
- package/assets/docs/guide/create-video/update-caption-presets.md +0 -676
- package/assets/docs/guide/edit-image/vectorize.md +0 -204
- package/assets/docs/guide/export-save-publish/export/to-html5.md +0 -474
- package/assets/docs/guide/export-save-publish/export/to-mp4.md +0 -364
- package/assets/docs/guide/get-started/vanilla-js/quickstart.md +0 -175
- package/assets/docs/guide/grid-and-rulers.md +0 -222
- package/assets/docs/guide/guides/text/rendering-internals.md +0 -796
- package/assets/docs/guide/import-media/asset-library.md +0 -23
- package/assets/docs/guide/import-media/asset-panel/basics.md +0 -324
- package/assets/docs/guide/import-media/asset-panel/customize.md +0 -478
- package/assets/docs/guide/import-media/asset-panel/thumbnails.md +0 -633
- package/assets/docs/guide/import-media/capture-from-camera/record-video.md +0 -137
- package/assets/docs/guide/import-media/capture-from-camera.md +0 -20
- package/assets/docs/guide/import-media/from-local-source/user-upload.md +0 -438
- package/assets/docs/guide/import-media/from-local-source.md +0 -20
- package/assets/docs/guide/import-media/from-remote-source/getty-images.md +0 -627
- package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +0 -625
- package/assets/docs/guide/import-media/from-remote-source/pexels.md +0 -692
- package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +0 -497
- package/assets/docs/guide/import-media/from-remote-source/third-party.md +0 -51
- package/assets/docs/guide/import-media/from-remote-source/unsplash.md +0 -914
- package/assets/docs/guide/import-media/from-remote-source/your-server.md +0 -764
- package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +0 -228
- package/assets/docs/guide/open-the-editor/set-zoom-level.md +0 -303
- package/assets/docs/guide/plugins/asset-sources.md +0 -553
- package/assets/docs/guide/starterkits/3d-mockup-editor.md +0 -748
- package/assets/docs/guide/starterkits/advanced-editor.md +0 -698
- package/assets/docs/guide/starterkits/advanced-video-editor.md +0 -696
- package/assets/docs/guide/starterkits/ai-editor.md +0 -749
- package/assets/docs/guide/starterkits/airtable-image-editor.md +0 -672
- package/assets/docs/guide/starterkits/apparel-ui.md +0 -188
- package/assets/docs/guide/starterkits/assets.md +0 -27
- package/assets/docs/guide/starterkits/auto-resize.md +0 -586
- package/assets/docs/guide/starterkits/automated-video-generation.md +0 -692
- package/assets/docs/guide/starterkits/background-removal-editor.md +0 -480
- package/assets/docs/guide/starterkits/content-moderation.md +0 -863
- package/assets/docs/guide/starterkits/creative-automation.md +0 -28
- package/assets/docs/guide/starterkits/custom-built-uis.md +0 -26
- package/assets/docs/guide/starterkits/customization.md +0 -29
- package/assets/docs/guide/starterkits/cutout-lines-editor.md +0 -470
- package/assets/docs/guide/starterkits/data-merge.md +0 -850
- package/assets/docs/guide/starterkits/design-editor.md +0 -698
- package/assets/docs/guide/starterkits/design-generation.md +0 -719
- package/assets/docs/guide/starterkits/design-validation.md +0 -808
- package/assets/docs/guide/starterkits/editor-ui-configurations.md +0 -14
- package/assets/docs/guide/starterkits/export-options.md +0 -724
- package/assets/docs/guide/starterkits/export-using-renderer.md +0 -708
- package/assets/docs/guide/starterkits/extensibility.md +0 -28
- package/assets/docs/guide/starterkits/force-crop-editor.md +0 -675
- package/assets/docs/guide/starterkits/form-based-template-adoption.md +0 -522
- package/assets/docs/guide/starterkits/getty-images-editor.md +0 -700
- package/assets/docs/guide/starterkits/html5-ads-exporter.md +0 -719
- package/assets/docs/guide/starterkits/indesign-template-import.md +0 -580
- package/assets/docs/guide/starterkits/layouts-editor.md +0 -724
- package/assets/docs/guide/starterkits/mobile-ui.md +0 -185
- package/assets/docs/guide/starterkits/mockup-editor.md +0 -745
- package/assets/docs/guide/starterkits/multi-image-generation.md +0 -542
- package/assets/docs/guide/starterkits/page-sizes-editor.md +0 -657
- package/assets/docs/guide/starterkits/pexels-image-editor.md +0 -665
- package/assets/docs/guide/starterkits/photo-editor.md +0 -755
- package/assets/docs/guide/starterkits/photo-ui.md +0 -186
- package/assets/docs/guide/starterkits/photobook-ui.md +0 -188
- package/assets/docs/guide/starterkits/placeholders.md +0 -678
- package/assets/docs/guide/starterkits/player.md +0 -405
- package/assets/docs/guide/starterkits/plugins.md +0 -25
- package/assets/docs/guide/starterkits/postcard-editor.md +0 -202
- package/assets/docs/guide/starterkits/pptx-template-import.md +0 -581
- package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +0 -746
- package/assets/docs/guide/starterkits/product-editor.md +0 -773
- package/assets/docs/guide/starterkits/psd-template-import.md +0 -580
- package/assets/docs/guide/starterkits/qr-code-editor.md +0 -470
- package/assets/docs/guide/starterkits/single-page-editor.md +0 -661
- package/assets/docs/guide/starterkits/start-with-image.md +0 -684
- package/assets/docs/guide/starterkits/start-with-video.md +0 -651
- package/assets/docs/guide/starterkits/t-shirt-designer.md +0 -742
- package/assets/docs/guide/starterkits/templating.md +0 -23
- package/assets/docs/guide/starterkits/theming.md +0 -662
- package/assets/docs/guide/starterkits/translation-internationalization.md +0 -662
- package/assets/docs/guide/starterkits/unsplash-editor.md +0 -839
- package/assets/docs/guide/starterkits/vectorizer-editor.md +0 -466
- package/assets/docs/guide/starterkits/version-history.md +0 -745
- package/assets/docs/guide/starterkits/video-animations.md +0 -853
- package/assets/docs/guide/starterkits/video-captions.md +0 -884
- package/assets/docs/guide/starterkits/video-editing.md +0 -25
- package/assets/docs/guide/starterkits/video-editor.md +0 -696
- package/assets/docs/guide/starterkits/video-export-options.md +0 -676
- package/assets/docs/guide/starterkits/viewer.md +0 -400
- package/assets/docs/guide/starterkits.md +0 -41
- package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +0 -362
- package/assets/docs/guide/text/custom-fonts.md +0 -401
- package/assets/docs/guide/text/decorations.md +0 -330
- package/assets/docs/guide/text/enumerations.md +0 -258
- package/assets/docs/guide/to-v1-10.md +0 -131
- package/assets/docs/guide/to-v1-13.md +0 -165
- package/assets/docs/guide/to-v1-32.md +0 -110
- package/assets/docs/guide/to-v1-69.md +0 -468
- package/assets/docs/guide/to-v1-72.md +0 -193
- package/assets/docs/guide/use-templates/library.md +0 -450
- package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +0 -428
- package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +0 -337
- package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +0 -853
- package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +0 -1045
- package/assets/docs/guide/user-interface/ai-integration/image-generation.md +0 -641
- package/assets/docs/guide/user-interface/ai-integration/integrate.md +0 -966
- package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +0 -99
- package/assets/docs/guide/user-interface/ai-integration/text-generation.md +0 -498
- package/assets/docs/guide/user-interface/ai-integration/video-generation.md +0 -493
- package/assets/docs/guide/user-interface/ai-integration.md +0 -30
- package/assets/docs/guide/user-interface/appearance/change-ui-font.md +0 -316
- package/assets/docs/guide/user-interface/appearance/custom-labels.md +0 -509
- package/assets/docs/guide/user-interface/appearance/icons.md +0 -373
- package/assets/docs/guide/user-interface/appearance/theming.md +0 -665
- package/assets/docs/guide/user-interface/appearance.md +0 -23
- package/assets/docs/guide/user-interface/build-your-own-ui.md +0 -620
- package/assets/docs/guide/user-interface/customization/canvas-menu.md +0 -412
- package/assets/docs/guide/user-interface/customization/canvas.md +0 -281
- package/assets/docs/guide/user-interface/customization/color-palette.md +0 -413
- package/assets/docs/guide/user-interface/customization/crop-presets.md +0 -384
- package/assets/docs/guide/user-interface/customization/disable-or-enable.md +0 -676
- package/assets/docs/guide/user-interface/customization/dock.md +0 -399
- package/assets/docs/guide/user-interface/customization/force-crop.md +0 -289
- package/assets/docs/guide/user-interface/customization/inspector-bar.md +0 -371
- package/assets/docs/guide/user-interface/customization/navigation-bar.md +0 -516
- package/assets/docs/guide/user-interface/customization/page-format.md +0 -436
- package/assets/docs/guide/user-interface/customization/panel.md +0 -605
- package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +0 -531
- package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +0 -358
- package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +0 -374
- package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +0 -323
- package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +0 -294
- package/assets/docs/guide/user-interface/customization/quick-start.md +0 -12
- package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +0 -519
- package/assets/docs/guide/user-interface/customization/reference/component-reference.md +0 -333
- package/assets/docs/guide/user-interface/customization/reference.md +0 -12
- package/assets/docs/guide/user-interface/customization.md +0 -39
- package/assets/docs/guide/user-interface/localization.md +0 -633
- package/assets/docs/guide/user-interface/overview.md +0 -167
- package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +0 -411
- package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +0 -721
- package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +0 -331
- package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +0 -553
- package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +0 -672
- package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +0 -415
- package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +0 -521
- package/assets/docs/guide/user-interface/ui-extensions.md +0 -26
- package/assets/docs/guide/user-interface.md +0 -25
- package/assets/prompts/evals-assetGenerate.md +0 -12
- package/assets/prompts/evals-brutalistCore.md +0 -34
- package/assets/prompts/evals-danskCatalogue.md +0 -31
- package/assets/prompts/evals-exportRoundTrip.md +0 -12
- package/assets/prompts/evals-inspectPriorCode.md +0 -16
- package/assets/prompts/evals-listProjectFiles.md +0 -6
- package/assets/prompts/evals-readAndExplainScript.md +0 -6
- package/assets/prompts/evals-resumeAcrossRestart.md +0 -15
- package/assets/prompts/evals-rewindRecovery.md +0 -10
- package/assets/prompts/evals-searchAcrossFiles.md +0 -6
- package/assets/prompts/evals-weddingCard.md +0 -20
- package/assets/prompts/explain.md +0 -6
- package/assets/prompts/review.md +0 -6
- package/dist/frontmatter.d.ts +0 -15
- package/dist/frontmatter.d.ts.map +0 -1
- package/dist/frontmatter.js +0 -46
- package/dist/frontmatter.js.map +0 -1
- package/dist/test/test/frontmatter.test.d.ts +0 -2
- package/dist/test/test/frontmatter.test.d.ts.map +0 -1
- package/dist/test/test/frontmatter.test.js +0 -55
- package/dist/test/test/frontmatter.test.js.map +0 -1
|
@@ -1,48 +1,22 @@
|
|
|
1
|
-
> This is one page of the CE.SDK
|
|
1
|
+
> This is one page of the CE.SDK Node.js documentation. For a complete overview, see the [Node.js Documentation Index](https://img.ly/docs/cesdk/node.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
|
|
2
2
|
|
|
3
3
|
**Navigation:** [Guides](./guides.md) > [Filters and Effects](./filters-and-effects.md) > [Distortion](./filters-and-effects/distortion.md)
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Apply distortion effects to warp, shift, and transform images
|
|
8
|
-
|
|
9
|
-

|
|
10
|
-
|
|
11
|
-
> **Reading time:** 10 minutes
|
|
12
|
-
>
|
|
13
|
-
> **Resources:**
|
|
14
|
-
>
|
|
15
|
-
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
16
|
-
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-filters-and-effects-distortion-browser)
|
|
17
|
-
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-filters-and-effects-distortion-browser)
|
|
18
|
-
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-filters-and-effects-distortion-browser/)
|
|
7
|
+
Apply distortion effects to warp, shift, and transform images for dynamic artistic visuals in server-side workflows.
|
|
19
8
|
|
|
20
9
|
Distortion effects differ from color filters in that they modify the geometry and spatial arrangement of pixels rather than their color values. CE.SDK provides several distortion effect types: liquid warping, mirror reflections, color channel shifting, radial pixelation, and TV glitch. Each effect offers configurable parameters to control the intensity and style of the distortion.
|
|
21
10
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
import
|
|
26
|
-
|
|
27
|
-
ColorPaletteAssetSource,
|
|
28
|
-
CropPresetsAssetSource,
|
|
29
|
-
DemoAssetSources,
|
|
30
|
-
EffectsAssetSource,
|
|
31
|
-
FiltersAssetSource,
|
|
32
|
-
PagePresetsAssetSource,
|
|
33
|
-
StickerAssetSource,
|
|
34
|
-
TextAssetSource,
|
|
35
|
-
TextComponentAssetSource,
|
|
36
|
-
TypefaceAssetSource,
|
|
37
|
-
UploadAssetSources,
|
|
38
|
-
VectorShapeAssetSource
|
|
39
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
40
|
-
import { DesignEditorConfig } from './design-editor/plugin';
|
|
41
|
-
import packageJson from './package.json';
|
|
11
|
+
CE.SDK's distortion effects work identically in server environments, making them ideal for batch processing, automated image enhancement, and headless rendering pipelines.
|
|
12
|
+
|
|
13
|
+
```javascript file=@cesdk_web_examples/guides-filters-and-effects-distortion-server-js/server-js.ts reference-only
|
|
14
|
+
import CreativeEngine from '@cesdk/node';
|
|
15
|
+
import { writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
42
16
|
import { calculateGridLayout } from './utils';
|
|
43
17
|
|
|
44
18
|
/**
|
|
45
|
-
* CE.SDK
|
|
19
|
+
* CE.SDK Server Guide: Distortion Effects
|
|
46
20
|
*
|
|
47
21
|
* Demonstrates applying various distortion effects to image blocks:
|
|
48
22
|
* - Checking effect support
|
|
@@ -51,264 +25,221 @@ import { calculateGridLayout } from './utils';
|
|
|
51
25
|
* - Applying shifter (chromatic aberration)
|
|
52
26
|
* - Applying radial pixel effect
|
|
53
27
|
* - Applying TV glitch effect
|
|
54
|
-
* - Combining multiple distortion effects
|
|
55
28
|
* - Managing effects (enable/disable/remove)
|
|
56
29
|
*/
|
|
57
|
-
class Example implements EditorPlugin {
|
|
58
|
-
name = packageJson.name;
|
|
59
|
-
|
|
60
|
-
version = packageJson.version;
|
|
61
|
-
|
|
62
|
-
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
63
|
-
if (!cesdk) {
|
|
64
|
-
throw new Error('CE.SDK instance is required for this plugin');
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
await cesdk.addPlugin(new DesignEditorConfig());
|
|
68
|
-
|
|
69
|
-
// Add asset source plugins
|
|
70
|
-
await cesdk.addPlugin(new BlurAssetSource());
|
|
71
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
72
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
73
|
-
await cesdk.addPlugin(
|
|
74
|
-
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
75
|
-
);
|
|
76
|
-
await cesdk.addPlugin(
|
|
77
|
-
new DemoAssetSources({
|
|
78
|
-
include: [
|
|
79
|
-
'ly.img.templates.blank.*',
|
|
80
|
-
'ly.img.templates.presentation.*',
|
|
81
|
-
'ly.img.templates.print.*',
|
|
82
|
-
'ly.img.templates.social.*',
|
|
83
|
-
'ly.img.image.*'
|
|
84
|
-
]
|
|
85
|
-
})
|
|
86
|
-
);
|
|
87
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
88
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
89
|
-
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
90
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
91
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
92
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
93
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
94
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
95
|
-
|
|
96
|
-
await cesdk.actions.run('scene.create', {
|
|
97
|
-
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
const engine = cesdk.engine;
|
|
101
|
-
const page = engine.block.findByType('page')[0];
|
|
102
|
-
|
|
103
|
-
const pageWidth = engine.block.getWidth(page);
|
|
104
|
-
const pageHeight = engine.block.getHeight(page);
|
|
105
|
-
|
|
106
|
-
// Enable effects in the inspector panel using the Feature API
|
|
107
|
-
cesdk.feature.enable('ly.img.effect');
|
|
108
|
-
|
|
109
|
-
// Calculate responsive grid layout based on page dimensions
|
|
110
|
-
const layout = calculateGridLayout(pageWidth, pageHeight, 6);
|
|
111
|
-
const { blockWidth, blockHeight, getPosition } = layout;
|
|
112
|
-
|
|
113
|
-
// Use a sample image URL
|
|
114
|
-
const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
|
|
115
|
-
const blockSize = { width: blockWidth, height: blockHeight };
|
|
116
|
-
|
|
117
|
-
// Create a sample block to demonstrate effect support checking
|
|
118
|
-
const sampleBlock = await engine.block.addImage(imageUri, {
|
|
119
|
-
size: blockSize
|
|
120
|
-
});
|
|
121
|
-
engine.block.appendChild(page, sampleBlock);
|
|
122
|
-
|
|
123
|
-
// Check if a block supports effects before applying them
|
|
124
|
-
const supportsEffects = engine.block.supportsEffects(sampleBlock);
|
|
125
|
-
console.log('Block supports effects:', supportsEffects);
|
|
126
|
-
|
|
127
|
-
// Create an image block for liquid distortion demonstration
|
|
128
|
-
const liquidBlock = await engine.block.addImage(imageUri, {
|
|
129
|
-
size: blockSize
|
|
130
|
-
});
|
|
131
|
-
engine.block.appendChild(page, liquidBlock);
|
|
132
|
-
|
|
133
|
-
// Create and apply liquid effect - creates flowing, organic warping
|
|
134
|
-
const liquidEffect = engine.block.createEffect('liquid');
|
|
135
|
-
engine.block.setFloat(liquidEffect, 'effect/liquid/amount', 0.5);
|
|
136
|
-
engine.block.setFloat(liquidEffect, 'effect/liquid/scale', 1.0);
|
|
137
|
-
engine.block.setFloat(liquidEffect, 'effect/liquid/time', 0.0);
|
|
138
|
-
engine.block.appendEffect(liquidBlock, liquidEffect);
|
|
139
|
-
|
|
140
|
-
// Create an image block for mirror effect demonstration
|
|
141
|
-
const mirrorBlock = await engine.block.addImage(imageUri, {
|
|
142
|
-
size: blockSize
|
|
143
|
-
});
|
|
144
|
-
engine.block.appendChild(page, mirrorBlock);
|
|
145
|
-
|
|
146
|
-
// Create and apply mirror effect - reflects image along a side
|
|
147
|
-
const mirrorEffect = engine.block.createEffect('mirror');
|
|
148
|
-
// Side values: 0 = Left, 1 = Right, 2 = Top, 3 = Bottom
|
|
149
|
-
engine.block.setInt(mirrorEffect, 'effect/mirror/side', 0);
|
|
150
|
-
engine.block.appendEffect(mirrorBlock, mirrorEffect);
|
|
151
|
-
|
|
152
|
-
// Create an image block for shifter effect demonstration
|
|
153
|
-
const shifterBlock = await engine.block.addImage(imageUri, {
|
|
154
|
-
size: blockSize
|
|
155
|
-
});
|
|
156
|
-
engine.block.appendChild(page, shifterBlock);
|
|
157
|
-
|
|
158
|
-
// Create and apply shifter effect - displaces color channels
|
|
159
|
-
const shifterEffect = engine.block.createEffect('shifter');
|
|
160
|
-
engine.block.setFloat(shifterEffect, 'effect/shifter/amount', 0.3);
|
|
161
|
-
engine.block.setFloat(shifterEffect, 'effect/shifter/angle', 0.785);
|
|
162
|
-
engine.block.appendEffect(shifterBlock, shifterEffect);
|
|
163
|
-
|
|
164
|
-
// Create an image block for radial pixel effect demonstration
|
|
165
|
-
const radialPixelBlock = await engine.block.addImage(imageUri, {
|
|
166
|
-
size: blockSize
|
|
167
|
-
});
|
|
168
|
-
engine.block.appendChild(page, radialPixelBlock);
|
|
169
|
-
|
|
170
|
-
// Create and apply radial pixel effect - pixelates in circular pattern
|
|
171
|
-
const radialPixelEffect = engine.block.createEffect('radial_pixel');
|
|
172
|
-
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/radius', 0.5);
|
|
173
|
-
engine.block.setFloat(
|
|
174
|
-
radialPixelEffect,
|
|
175
|
-
'effect/radial_pixel/segments',
|
|
176
|
-
0.5
|
|
177
|
-
);
|
|
178
|
-
engine.block.appendEffect(radialPixelBlock, radialPixelEffect);
|
|
179
|
-
|
|
180
|
-
// Create an image block for TV glitch effect demonstration
|
|
181
|
-
const tvGlitchBlock = await engine.block.addImage(imageUri, {
|
|
182
|
-
size: blockSize
|
|
183
|
-
});
|
|
184
|
-
engine.block.appendChild(page, tvGlitchBlock);
|
|
185
|
-
|
|
186
|
-
// Create and apply TV glitch effect - simulates analog TV interference
|
|
187
|
-
const tvGlitchEffect = engine.block.createEffect('tv_glitch');
|
|
188
|
-
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion', 0.4);
|
|
189
|
-
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion2', 0.2);
|
|
190
|
-
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/speed', 0.5);
|
|
191
|
-
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/rollSpeed', 0.1);
|
|
192
|
-
engine.block.appendEffect(tvGlitchBlock, tvGlitchEffect);
|
|
193
|
-
|
|
194
|
-
// Get all effects applied to a block
|
|
195
|
-
const effects = engine.block.getEffects(tvGlitchBlock);
|
|
196
|
-
console.log('Applied effects:', effects);
|
|
197
|
-
|
|
198
|
-
// Get the type of each effect
|
|
199
|
-
effects.forEach((effect, index) => {
|
|
200
|
-
const effectType = engine.block.getType(effect);
|
|
201
|
-
console.log(`Effect ${index}: ${effectType}`);
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
// Check if an effect is enabled
|
|
205
|
-
const isEnabled = engine.block.isEffectEnabled(liquidEffect);
|
|
206
|
-
console.log('Liquid effect enabled:', isEnabled);
|
|
207
|
-
|
|
208
|
-
// Disable an effect without removing it
|
|
209
|
-
engine.block.setEffectEnabled(liquidEffect, false);
|
|
210
|
-
console.log(
|
|
211
|
-
'Liquid effect now disabled:',
|
|
212
|
-
!engine.block.isEffectEnabled(liquidEffect)
|
|
213
|
-
);
|
|
214
|
-
|
|
215
|
-
// Re-enable the effect
|
|
216
|
-
engine.block.setEffectEnabled(liquidEffect, true);
|
|
217
|
-
|
|
218
|
-
// To remove an effect, get its index and use removeEffect
|
|
219
|
-
const shifterEffects = engine.block.getEffects(shifterBlock);
|
|
220
|
-
const effectIndex = shifterEffects.indexOf(shifterEffect);
|
|
221
|
-
if (effectIndex !== -1) {
|
|
222
|
-
// Remove effect at the specified index
|
|
223
|
-
engine.block.removeEffect(shifterBlock, effectIndex);
|
|
224
|
-
|
|
225
|
-
// Destroy the removed effect to free memory
|
|
226
|
-
engine.block.destroy(shifterEffect);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// Re-add the effect for display purposes
|
|
230
|
-
const newShifterEffect = engine.block.createEffect('shifter');
|
|
231
|
-
engine.block.setFloat(newShifterEffect, 'effect/shifter/amount', 0.3);
|
|
232
|
-
engine.block.setFloat(newShifterEffect, 'effect/shifter/angle', 0.785);
|
|
233
|
-
engine.block.appendEffect(shifterBlock, newShifterEffect);
|
|
234
|
-
|
|
235
|
-
// Find all available properties for an effect
|
|
236
|
-
const tvGlitchProperties = engine.block.findAllProperties(tvGlitchEffect);
|
|
237
|
-
console.log('TV glitch properties:', tvGlitchProperties);
|
|
238
|
-
|
|
239
|
-
// Position all blocks in grid layout
|
|
240
|
-
const blocks = [
|
|
241
|
-
sampleBlock,
|
|
242
|
-
liquidBlock,
|
|
243
|
-
mirrorBlock,
|
|
244
|
-
shifterBlock,
|
|
245
|
-
radialPixelBlock,
|
|
246
|
-
tvGlitchBlock
|
|
247
|
-
];
|
|
248
|
-
|
|
249
|
-
blocks.forEach((block, index) => {
|
|
250
|
-
const pos = getPosition(index);
|
|
251
|
-
engine.block.setPositionX(block, pos.x);
|
|
252
|
-
engine.block.setPositionY(block, pos.y);
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
// Select the liquid effect block (second block) and open the effects panel
|
|
256
|
-
engine.block.select(liquidBlock);
|
|
257
|
-
cesdk.ui.openPanel('//ly.img.panel/inspector/effects');
|
|
258
|
-
|
|
259
|
-
console.log('Distortion effects guide initialized.');
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
export default Example;
|
|
264
|
-
```
|
|
265
30
|
|
|
266
|
-
|
|
31
|
+
// Initialize CE.SDK engine in headless mode
|
|
32
|
+
const engine = await CreativeEngine.init({
|
|
33
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
34
|
+
// license: process.env.CESDK_LICENSE, // Optional (trial mode available)
|
|
35
|
+
});
|
|
267
36
|
|
|
268
|
-
|
|
37
|
+
try {
|
|
38
|
+
// Create a design scene with specific page dimensions
|
|
39
|
+
engine.scene.create('VerticalStack', {
|
|
40
|
+
page: { size: { width: 800, height: 600 } }
|
|
41
|
+
});
|
|
42
|
+
const page = engine.block.findByType('page')[0];
|
|
43
|
+
|
|
44
|
+
const pageWidth = engine.block.getWidth(page);
|
|
45
|
+
const pageHeight = engine.block.getHeight(page);
|
|
46
|
+
|
|
47
|
+
// Calculate responsive grid layout based on page dimensions
|
|
48
|
+
const layout = calculateGridLayout(pageWidth, pageHeight, 6);
|
|
49
|
+
const { blockWidth, blockHeight, getPosition } = layout;
|
|
50
|
+
|
|
51
|
+
// Use a sample image URL
|
|
52
|
+
const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
|
|
53
|
+
const blockSize = { width: blockWidth, height: blockHeight };
|
|
54
|
+
|
|
55
|
+
// Create a sample block to demonstrate effect support checking
|
|
56
|
+
const sampleBlock = await engine.block.addImage(imageUri, {
|
|
57
|
+
size: blockSize
|
|
58
|
+
});
|
|
59
|
+
engine.block.appendChild(page, sampleBlock);
|
|
60
|
+
|
|
61
|
+
// Check if a block supports effects before applying them
|
|
62
|
+
const supportsEffects = engine.block.supportsEffects(sampleBlock);
|
|
63
|
+
console.log('Block supports effects:', supportsEffects);
|
|
64
|
+
|
|
65
|
+
// Create an image block for liquid distortion demonstration
|
|
66
|
+
const liquidBlock = await engine.block.addImage(imageUri, {
|
|
67
|
+
size: blockSize
|
|
68
|
+
});
|
|
69
|
+
engine.block.appendChild(page, liquidBlock);
|
|
70
|
+
|
|
71
|
+
// Create and apply liquid effect - creates flowing, organic warping
|
|
72
|
+
const liquidEffect = engine.block.createEffect('liquid');
|
|
73
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/amount', 0.5);
|
|
74
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/scale', 1.0);
|
|
75
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/time', 0.0);
|
|
76
|
+
engine.block.appendEffect(liquidBlock, liquidEffect);
|
|
77
|
+
|
|
78
|
+
// Create an image block for mirror effect demonstration
|
|
79
|
+
const mirrorBlock = await engine.block.addImage(imageUri, {
|
|
80
|
+
size: blockSize
|
|
81
|
+
});
|
|
82
|
+
engine.block.appendChild(page, mirrorBlock);
|
|
83
|
+
|
|
84
|
+
// Create and apply mirror effect - reflects image along a side
|
|
85
|
+
const mirrorEffect = engine.block.createEffect('mirror');
|
|
86
|
+
// Side values: 0 = Left, 1 = Right, 2 = Top, 3 = Bottom
|
|
87
|
+
engine.block.setInt(mirrorEffect, 'effect/mirror/side', 0);
|
|
88
|
+
engine.block.appendEffect(mirrorBlock, mirrorEffect);
|
|
89
|
+
|
|
90
|
+
// Create an image block for shifter effect demonstration
|
|
91
|
+
const shifterBlock = await engine.block.addImage(imageUri, {
|
|
92
|
+
size: blockSize
|
|
93
|
+
});
|
|
94
|
+
engine.block.appendChild(page, shifterBlock);
|
|
95
|
+
|
|
96
|
+
// Create and apply shifter effect - displaces color channels
|
|
97
|
+
const shifterEffect = engine.block.createEffect('shifter');
|
|
98
|
+
engine.block.setFloat(shifterEffect, 'effect/shifter/amount', 0.3);
|
|
99
|
+
engine.block.setFloat(shifterEffect, 'effect/shifter/angle', 0.785);
|
|
100
|
+
engine.block.appendEffect(shifterBlock, shifterEffect);
|
|
101
|
+
|
|
102
|
+
// Create an image block for radial pixel effect demonstration
|
|
103
|
+
const radialPixelBlock = await engine.block.addImage(imageUri, {
|
|
104
|
+
size: blockSize
|
|
105
|
+
});
|
|
106
|
+
engine.block.appendChild(page, radialPixelBlock);
|
|
107
|
+
|
|
108
|
+
// Create and apply radial pixel effect - pixelates in circular pattern
|
|
109
|
+
const radialPixelEffect = engine.block.createEffect('radial_pixel');
|
|
110
|
+
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/radius', 0.5);
|
|
111
|
+
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/segments', 0.5);
|
|
112
|
+
engine.block.appendEffect(radialPixelBlock, radialPixelEffect);
|
|
113
|
+
|
|
114
|
+
// Create an image block for TV glitch effect demonstration
|
|
115
|
+
const tvGlitchBlock = await engine.block.addImage(imageUri, {
|
|
116
|
+
size: blockSize
|
|
117
|
+
});
|
|
118
|
+
engine.block.appendChild(page, tvGlitchBlock);
|
|
119
|
+
|
|
120
|
+
// Create and apply TV glitch effect - simulates analog TV interference
|
|
121
|
+
const tvGlitchEffect = engine.block.createEffect('tv_glitch');
|
|
122
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion', 0.4);
|
|
123
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion2', 0.2);
|
|
124
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/speed', 0.5);
|
|
125
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/rollSpeed', 0.1);
|
|
126
|
+
engine.block.appendEffect(tvGlitchBlock, tvGlitchEffect);
|
|
127
|
+
|
|
128
|
+
// Get all effects applied to a block
|
|
129
|
+
const effects = engine.block.getEffects(tvGlitchBlock);
|
|
130
|
+
console.log('Applied effects:', effects);
|
|
131
|
+
|
|
132
|
+
// Get the type of each effect
|
|
133
|
+
effects.forEach((effect, index) => {
|
|
134
|
+
const effectType = engine.block.getType(effect);
|
|
135
|
+
console.log(`Effect ${index}: ${effectType}`);
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
// Check if an effect is enabled
|
|
139
|
+
const isEnabled = engine.block.isEffectEnabled(liquidEffect);
|
|
140
|
+
console.log('Liquid effect enabled:', isEnabled);
|
|
141
|
+
|
|
142
|
+
// Disable an effect without removing it
|
|
143
|
+
engine.block.setEffectEnabled(liquidEffect, false);
|
|
144
|
+
console.log(
|
|
145
|
+
'Liquid effect now disabled:',
|
|
146
|
+
!engine.block.isEffectEnabled(liquidEffect)
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
// Re-enable the effect
|
|
150
|
+
engine.block.setEffectEnabled(liquidEffect, true);
|
|
151
|
+
|
|
152
|
+
// To remove an effect, get its index and use removeEffect
|
|
153
|
+
const shifterEffects = engine.block.getEffects(shifterBlock);
|
|
154
|
+
const effectIndex = shifterEffects.indexOf(shifterEffect);
|
|
155
|
+
if (effectIndex !== -1) {
|
|
156
|
+
// Remove effect at the specified index
|
|
157
|
+
engine.block.removeEffect(shifterBlock, effectIndex);
|
|
158
|
+
|
|
159
|
+
// Destroy the removed effect to free memory
|
|
160
|
+
engine.block.destroy(shifterEffect);
|
|
161
|
+
}
|
|
269
162
|
|
|
270
|
-
|
|
163
|
+
// Re-add the effect for display purposes
|
|
164
|
+
const newShifterEffect = engine.block.createEffect('shifter');
|
|
165
|
+
engine.block.setFloat(newShifterEffect, 'effect/shifter/amount', 0.3);
|
|
166
|
+
engine.block.setFloat(newShifterEffect, 'effect/shifter/angle', 0.785);
|
|
167
|
+
engine.block.appendEffect(shifterBlock, newShifterEffect);
|
|
168
|
+
|
|
169
|
+
// Find all available properties for an effect
|
|
170
|
+
const tvGlitchProperties = engine.block.findAllProperties(tvGlitchEffect);
|
|
171
|
+
console.log('TV glitch properties:', tvGlitchProperties);
|
|
172
|
+
|
|
173
|
+
// Position all blocks in grid layout
|
|
174
|
+
const blocks = [
|
|
175
|
+
sampleBlock,
|
|
176
|
+
liquidBlock,
|
|
177
|
+
mirrorBlock,
|
|
178
|
+
shifterBlock,
|
|
179
|
+
radialPixelBlock,
|
|
180
|
+
tvGlitchBlock
|
|
181
|
+
];
|
|
182
|
+
|
|
183
|
+
blocks.forEach((block, index) => {
|
|
184
|
+
const pos = getPosition(index);
|
|
185
|
+
engine.block.setPositionX(block, pos.x);
|
|
186
|
+
engine.block.setPositionY(block, pos.y);
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
// Export the page to PNG
|
|
190
|
+
const blob = await engine.block.export(page, { mimeType: 'image/png' });
|
|
191
|
+
const buffer = Buffer.from(await blob.arrayBuffer());
|
|
192
|
+
|
|
193
|
+
// Ensure output directory exists
|
|
194
|
+
if (!existsSync('output')) {
|
|
195
|
+
mkdirSync('output');
|
|
196
|
+
}
|
|
271
197
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
198
|
+
// Save to file
|
|
199
|
+
writeFileSync('output/distortion-effects.png', buffer);
|
|
200
|
+
console.log(
|
|
201
|
+
'✅ Exported distortion effects to output/distortion-effects.png'
|
|
202
|
+
);
|
|
203
|
+
} finally {
|
|
204
|
+
engine.dispose();
|
|
205
|
+
}
|
|
275
206
|
```
|
|
276
207
|
|
|
277
|
-
|
|
208
|
+
This guide covers how to apply and configure distortion effects programmatically using the block API in server-side Node.js environments.
|
|
278
209
|
|
|
279
210
|
## Check Effect Support
|
|
280
211
|
|
|
281
|
-
Before applying distortion effects, verify the block supports them. Graphic blocks with image
|
|
212
|
+
Before applying distortion effects, verify the block supports them. Graphic blocks with image fills support effects, while scene blocks do not.
|
|
282
213
|
|
|
283
|
-
```
|
|
284
|
-
// Create a sample block to demonstrate effect support checking
|
|
285
|
-
const sampleBlock = await engine.block.addImage(imageUri, {
|
|
286
|
-
|
|
287
|
-
});
|
|
288
|
-
engine.block.appendChild(page, sampleBlock);
|
|
214
|
+
```javascript highlight-check-support
|
|
215
|
+
// Create a sample block to demonstrate effect support checking
|
|
216
|
+
const sampleBlock = await engine.block.addImage(imageUri, {
|
|
217
|
+
size: blockSize
|
|
218
|
+
});
|
|
219
|
+
engine.block.appendChild(page, sampleBlock);
|
|
289
220
|
|
|
290
|
-
// Check if a block supports effects before applying them
|
|
291
|
-
const supportsEffects = engine.block.supportsEffects(sampleBlock);
|
|
292
|
-
console.log('Block supports effects:', supportsEffects);
|
|
221
|
+
// Check if a block supports effects before applying them
|
|
222
|
+
const supportsEffects = engine.block.supportsEffects(sampleBlock);
|
|
223
|
+
console.log('Block supports effects:', supportsEffects);
|
|
293
224
|
```
|
|
294
225
|
|
|
295
226
|
## Apply Liquid Effect
|
|
296
227
|
|
|
297
228
|
The liquid effect creates organic, flowing distortions that warp the image as if viewed through water. We can configure the intensity and scale of the warping.
|
|
298
229
|
|
|
299
|
-
```
|
|
300
|
-
// Create an image block for liquid distortion demonstration
|
|
301
|
-
const liquidBlock = await engine.block.addImage(imageUri, {
|
|
302
|
-
|
|
303
|
-
});
|
|
304
|
-
engine.block.appendChild(page, liquidBlock);
|
|
305
|
-
|
|
306
|
-
// Create and apply liquid effect - creates flowing, organic warping
|
|
307
|
-
const liquidEffect = engine.block.createEffect('liquid');
|
|
308
|
-
engine.block.setFloat(liquidEffect, 'effect/liquid/amount', 0.5);
|
|
309
|
-
engine.block.setFloat(liquidEffect, 'effect/liquid/scale', 1.0);
|
|
310
|
-
engine.block.setFloat(liquidEffect, 'effect/liquid/time', 0.0);
|
|
311
|
-
engine.block.appendEffect(liquidBlock, liquidEffect);
|
|
230
|
+
```javascript highlight-liquid-effect
|
|
231
|
+
// Create an image block for liquid distortion demonstration
|
|
232
|
+
const liquidBlock = await engine.block.addImage(imageUri, {
|
|
233
|
+
size: blockSize
|
|
234
|
+
});
|
|
235
|
+
engine.block.appendChild(page, liquidBlock);
|
|
236
|
+
|
|
237
|
+
// Create and apply liquid effect - creates flowing, organic warping
|
|
238
|
+
const liquidEffect = engine.block.createEffect('liquid');
|
|
239
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/amount', 0.5);
|
|
240
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/scale', 1.0);
|
|
241
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/time', 0.0);
|
|
242
|
+
engine.block.appendEffect(liquidBlock, liquidEffect);
|
|
312
243
|
```
|
|
313
244
|
|
|
314
245
|
The liquid effect parameters:
|
|
@@ -321,18 +252,18 @@ The liquid effect parameters:
|
|
|
321
252
|
|
|
322
253
|
The mirror effect reflects the image along a configurable side, creating symmetrical compositions.
|
|
323
254
|
|
|
324
|
-
```
|
|
325
|
-
// Create an image block for mirror effect demonstration
|
|
326
|
-
const mirrorBlock = await engine.block.addImage(imageUri, {
|
|
327
|
-
|
|
328
|
-
});
|
|
329
|
-
engine.block.appendChild(page, mirrorBlock);
|
|
330
|
-
|
|
331
|
-
// Create and apply mirror effect - reflects image along a side
|
|
332
|
-
const mirrorEffect = engine.block.createEffect('mirror');
|
|
333
|
-
// Side values: 0 = Left, 1 = Right, 2 = Top, 3 = Bottom
|
|
334
|
-
engine.block.setInt(mirrorEffect, 'effect/mirror/side', 0);
|
|
335
|
-
engine.block.appendEffect(mirrorBlock, mirrorEffect);
|
|
255
|
+
```javascript highlight-mirror-effect
|
|
256
|
+
// Create an image block for mirror effect demonstration
|
|
257
|
+
const mirrorBlock = await engine.block.addImage(imageUri, {
|
|
258
|
+
size: blockSize
|
|
259
|
+
});
|
|
260
|
+
engine.block.appendChild(page, mirrorBlock);
|
|
261
|
+
|
|
262
|
+
// Create and apply mirror effect - reflects image along a side
|
|
263
|
+
const mirrorEffect = engine.block.createEffect('mirror');
|
|
264
|
+
// Side values: 0 = Left, 1 = Right, 2 = Top, 3 = Bottom
|
|
265
|
+
engine.block.setInt(mirrorEffect, 'effect/mirror/side', 0);
|
|
266
|
+
engine.block.appendEffect(mirrorBlock, mirrorEffect);
|
|
336
267
|
```
|
|
337
268
|
|
|
338
269
|
The `side` parameter uses integer values: `0` (Left), `1` (Right), `2` (Top), or `3` (Bottom) to specify the reflection axis.
|
|
@@ -341,18 +272,18 @@ The `side` parameter uses integer values: `0` (Left), `1` (Right), `2` (Top), or
|
|
|
341
272
|
|
|
342
273
|
The shifter effect displaces color channels at an angle, creating chromatic aberration commonly seen in glitch art and retro visuals.
|
|
343
274
|
|
|
344
|
-
```
|
|
345
|
-
// Create an image block for shifter effect demonstration
|
|
346
|
-
const shifterBlock = await engine.block.addImage(imageUri, {
|
|
347
|
-
|
|
348
|
-
});
|
|
349
|
-
engine.block.appendChild(page, shifterBlock);
|
|
350
|
-
|
|
351
|
-
// Create and apply shifter effect - displaces color channels
|
|
352
|
-
const shifterEffect = engine.block.createEffect('shifter');
|
|
353
|
-
engine.block.setFloat(shifterEffect, 'effect/shifter/amount', 0.3);
|
|
354
|
-
engine.block.setFloat(shifterEffect, 'effect/shifter/angle', 0.785);
|
|
355
|
-
engine.block.appendEffect(shifterBlock, shifterEffect);
|
|
275
|
+
```javascript highlight-shifter-effect
|
|
276
|
+
// Create an image block for shifter effect demonstration
|
|
277
|
+
const shifterBlock = await engine.block.addImage(imageUri, {
|
|
278
|
+
size: blockSize
|
|
279
|
+
});
|
|
280
|
+
engine.block.appendChild(page, shifterBlock);
|
|
281
|
+
|
|
282
|
+
// Create and apply shifter effect - displaces color channels
|
|
283
|
+
const shifterEffect = engine.block.createEffect('shifter');
|
|
284
|
+
engine.block.setFloat(shifterEffect, 'effect/shifter/amount', 0.3);
|
|
285
|
+
engine.block.setFloat(shifterEffect, 'effect/shifter/angle', 0.785);
|
|
286
|
+
engine.block.appendEffect(shifterBlock, shifterEffect);
|
|
356
287
|
```
|
|
357
288
|
|
|
358
289
|
The shifter effect parameters:
|
|
@@ -364,18 +295,18 @@ The shifter effect parameters:
|
|
|
364
295
|
|
|
365
296
|
The radial pixel effect pixelates the image in a circular pattern emanating from the center, useful for focus effects or stylized treatments.
|
|
366
297
|
|
|
367
|
-
```
|
|
368
|
-
// Create an image block for radial pixel effect demonstration
|
|
369
|
-
const radialPixelBlock = await engine.block.addImage(imageUri, {
|
|
370
|
-
|
|
371
|
-
});
|
|
372
|
-
engine.block.appendChild(page, radialPixelBlock);
|
|
373
|
-
|
|
374
|
-
// Create and apply radial pixel effect - pixelates in circular pattern
|
|
375
|
-
const radialPixelEffect = engine.block.createEffect('radial_pixel');
|
|
376
|
-
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/radius', 0.5);
|
|
377
|
-
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/segments', 0.5);
|
|
378
|
-
engine.block.appendEffect(radialPixelBlock, radialPixelEffect);
|
|
298
|
+
```javascript highlight-radial-pixel-effect
|
|
299
|
+
// Create an image block for radial pixel effect demonstration
|
|
300
|
+
const radialPixelBlock = await engine.block.addImage(imageUri, {
|
|
301
|
+
size: blockSize
|
|
302
|
+
});
|
|
303
|
+
engine.block.appendChild(page, radialPixelBlock);
|
|
304
|
+
|
|
305
|
+
// Create and apply radial pixel effect - pixelates in circular pattern
|
|
306
|
+
const radialPixelEffect = engine.block.createEffect('radial_pixel');
|
|
307
|
+
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/radius', 0.5);
|
|
308
|
+
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/segments', 0.5);
|
|
309
|
+
engine.block.appendEffect(radialPixelBlock, radialPixelEffect);
|
|
379
310
|
```
|
|
380
311
|
|
|
381
312
|
The radial pixel effect parameters:
|
|
@@ -387,20 +318,20 @@ The radial pixel effect parameters:
|
|
|
387
318
|
|
|
388
319
|
The TV glitch effect simulates analog television interference with horizontal distortion and rolling effects, popular for retro and digital aesthetics.
|
|
389
320
|
|
|
390
|
-
```
|
|
391
|
-
// Create an image block for TV glitch effect demonstration
|
|
392
|
-
const tvGlitchBlock = await engine.block.addImage(imageUri, {
|
|
393
|
-
|
|
394
|
-
});
|
|
395
|
-
engine.block.appendChild(page, tvGlitchBlock);
|
|
396
|
-
|
|
397
|
-
// Create and apply TV glitch effect - simulates analog TV interference
|
|
398
|
-
const tvGlitchEffect = engine.block.createEffect('tv_glitch');
|
|
399
|
-
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion', 0.4);
|
|
400
|
-
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion2', 0.2);
|
|
401
|
-
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/speed', 0.5);
|
|
402
|
-
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/rollSpeed', 0.1);
|
|
403
|
-
engine.block.appendEffect(tvGlitchBlock, tvGlitchEffect);
|
|
321
|
+
```javascript highlight-tv-glitch-effect
|
|
322
|
+
// Create an image block for TV glitch effect demonstration
|
|
323
|
+
const tvGlitchBlock = await engine.block.addImage(imageUri, {
|
|
324
|
+
size: blockSize
|
|
325
|
+
});
|
|
326
|
+
engine.block.appendChild(page, tvGlitchBlock);
|
|
327
|
+
|
|
328
|
+
// Create and apply TV glitch effect - simulates analog TV interference
|
|
329
|
+
const tvGlitchEffect = engine.block.createEffect('tv_glitch');
|
|
330
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion', 0.4);
|
|
331
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion2', 0.2);
|
|
332
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/speed', 0.5);
|
|
333
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/rollSpeed', 0.1);
|
|
334
|
+
engine.block.appendEffect(tvGlitchBlock, tvGlitchEffect);
|
|
404
335
|
```
|
|
405
336
|
|
|
406
337
|
The TV glitch effect parameters:
|
|
@@ -414,16 +345,16 @@ The TV glitch effect parameters:
|
|
|
414
345
|
|
|
415
346
|
Retrieve all effects applied to a block to inspect or iterate over them.
|
|
416
347
|
|
|
417
|
-
```
|
|
418
|
-
// Get all effects applied to a block
|
|
419
|
-
const effects = engine.block.getEffects(tvGlitchBlock);
|
|
420
|
-
console.log('Applied effects:', effects);
|
|
348
|
+
```javascript highlight-get-effects
|
|
349
|
+
// Get all effects applied to a block
|
|
350
|
+
const effects = engine.block.getEffects(tvGlitchBlock);
|
|
351
|
+
console.log('Applied effects:', effects);
|
|
421
352
|
|
|
422
|
-
// Get the type of each effect
|
|
423
|
-
effects.forEach((effect, index) => {
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
});
|
|
353
|
+
// Get the type of each effect
|
|
354
|
+
effects.forEach((effect, index) => {
|
|
355
|
+
const effectType = engine.block.getType(effect);
|
|
356
|
+
console.log(`Effect ${index}: ${effectType}`);
|
|
357
|
+
});
|
|
427
358
|
```
|
|
428
359
|
|
|
429
360
|
This returns an array of effect IDs in the order they were applied.
|
|
@@ -432,20 +363,20 @@ This returns an array of effect IDs in the order they were applied.
|
|
|
432
363
|
|
|
433
364
|
Toggle effects on and off without removing them from the block. This preserves all effect parameters while controlling visibility.
|
|
434
365
|
|
|
435
|
-
```
|
|
436
|
-
// Check if an effect is enabled
|
|
437
|
-
const isEnabled = engine.block.isEffectEnabled(liquidEffect);
|
|
438
|
-
console.log('Liquid effect enabled:', isEnabled);
|
|
366
|
+
```javascript highlight-toggle-effect
|
|
367
|
+
// Check if an effect is enabled
|
|
368
|
+
const isEnabled = engine.block.isEffectEnabled(liquidEffect);
|
|
369
|
+
console.log('Liquid effect enabled:', isEnabled);
|
|
439
370
|
|
|
440
|
-
// Disable an effect without removing it
|
|
441
|
-
engine.block.setEffectEnabled(liquidEffect, false);
|
|
442
|
-
console.log(
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
);
|
|
371
|
+
// Disable an effect without removing it
|
|
372
|
+
engine.block.setEffectEnabled(liquidEffect, false);
|
|
373
|
+
console.log(
|
|
374
|
+
'Liquid effect now disabled:',
|
|
375
|
+
!engine.block.isEffectEnabled(liquidEffect)
|
|
376
|
+
);
|
|
446
377
|
|
|
447
|
-
// Re-enable the effect
|
|
448
|
-
engine.block.setEffectEnabled(liquidEffect, true);
|
|
378
|
+
// Re-enable the effect
|
|
379
|
+
engine.block.setEffectEnabled(liquidEffect, true);
|
|
449
380
|
```
|
|
450
381
|
|
|
451
382
|
Disabled effects remain attached to the block but won't be rendered until re-enabled. This is useful for before/after comparisons or performance optimization.
|
|
@@ -454,30 +385,30 @@ Disabled effects remain attached to the block but won't be rendered until re-ena
|
|
|
454
385
|
|
|
455
386
|
Remove effects from a block when they're no longer needed. Always destroy removed effects to free memory.
|
|
456
387
|
|
|
457
|
-
```
|
|
458
|
-
// To remove an effect, get its index and use removeEffect
|
|
459
|
-
const shifterEffects = engine.block.getEffects(shifterBlock);
|
|
460
|
-
const effectIndex = shifterEffects.indexOf(shifterEffect);
|
|
461
|
-
if (effectIndex !== -1) {
|
|
462
|
-
|
|
463
|
-
|
|
388
|
+
```javascript highlight-remove-effect
|
|
389
|
+
// To remove an effect, get its index and use removeEffect
|
|
390
|
+
const shifterEffects = engine.block.getEffects(shifterBlock);
|
|
391
|
+
const effectIndex = shifterEffects.indexOf(shifterEffect);
|
|
392
|
+
if (effectIndex !== -1) {
|
|
393
|
+
// Remove effect at the specified index
|
|
394
|
+
engine.block.removeEffect(shifterBlock, effectIndex);
|
|
464
395
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
}
|
|
396
|
+
// Destroy the removed effect to free memory
|
|
397
|
+
engine.block.destroy(shifterEffect);
|
|
398
|
+
}
|
|
468
399
|
|
|
469
|
-
// Re-add the effect for display purposes
|
|
470
|
-
const newShifterEffect = engine.block.createEffect('shifter');
|
|
471
|
-
engine.block.setFloat(newShifterEffect, 'effect/shifter/amount', 0.3);
|
|
472
|
-
engine.block.setFloat(newShifterEffect, 'effect/shifter/angle', 0.785);
|
|
473
|
-
engine.block.appendEffect(shifterBlock, newShifterEffect);
|
|
400
|
+
// Re-add the effect for display purposes
|
|
401
|
+
const newShifterEffect = engine.block.createEffect('shifter');
|
|
402
|
+
engine.block.setFloat(newShifterEffect, 'effect/shifter/amount', 0.3);
|
|
403
|
+
engine.block.setFloat(newShifterEffect, 'effect/shifter/angle', 0.785);
|
|
404
|
+
engine.block.appendEffect(shifterBlock, newShifterEffect);
|
|
474
405
|
```
|
|
475
406
|
|
|
476
407
|
## Discover Effect Properties
|
|
477
408
|
|
|
478
409
|
Use `findAllProperties()` to discover all available properties for any effect type.
|
|
479
410
|
|
|
480
|
-
```
|
|
411
|
+
```javascript highlight-effect-properties
|
|
481
412
|
// Find all available properties for an effect
|
|
482
413
|
const tvGlitchProperties = engine.block.findAllProperties(tvGlitchEffect);
|
|
483
414
|
console.log('TV glitch properties:', tvGlitchProperties);
|
|
@@ -487,41 +418,43 @@ This returns an array of property paths that can be used with `setFloat()`, `set
|
|
|
487
418
|
|
|
488
419
|
## API Reference
|
|
489
420
|
|
|
490
|
-
| Method
|
|
491
|
-
|
|
492
|
-
| `engine.block.supportsEffects(id)`
|
|
493
|
-
| `engine.block.createEffect(type)`
|
|
494
|
-
| `engine.block.appendEffect(id, effectId)`
|
|
495
|
-
| `engine.block.getEffects(id)`
|
|
496
|
-
| `engine.block.setEffectEnabled(effectId, enabled)` | Enable or disable an effect
|
|
497
|
-
| `engine.block.isEffectEnabled(effectId)`
|
|
498
|
-
| `engine.block.removeEffect(id, index)`
|
|
499
|
-
| `engine.block.findAllProperties(id)`
|
|
500
|
-
| `engine.block.setFloat(id, property, value)`
|
|
501
|
-
| `engine.block.setInt(id, property, value)`
|
|
502
|
-
| `engine.block.destroy(id)`
|
|
503
|
-
| `engine.block.getType(id)`
|
|
421
|
+
| Method | Description |
|
|
422
|
+
|--------|-------------|
|
|
423
|
+
| `engine.block.supportsEffects(id)` | Check if a block supports effects |
|
|
424
|
+
| `engine.block.createEffect(type)` | Create a new effect instance |
|
|
425
|
+
| `engine.block.appendEffect(id, effectId)` | Add an effect to a block |
|
|
426
|
+
| `engine.block.getEffects(id)` | Get all effects applied to a block |
|
|
427
|
+
| `engine.block.setEffectEnabled(effectId, enabled)` | Enable or disable an effect |
|
|
428
|
+
| `engine.block.isEffectEnabled(effectId)` | Check if an effect is enabled |
|
|
429
|
+
| `engine.block.removeEffect(id, index)` | Remove an effect at a specific index |
|
|
430
|
+
| `engine.block.findAllProperties(id)` | Discover all properties of an effect |
|
|
431
|
+
| `engine.block.setFloat(id, property, value)` | Set a float property value |
|
|
432
|
+
| `engine.block.setInt(id, property, value)` | Set an integer property value |
|
|
433
|
+
| `engine.block.destroy(id)` | Destroy a block to free memory |
|
|
434
|
+
| `engine.block.getType(id)` | Get the type of a block |
|
|
504
435
|
|
|
505
436
|
## Available Distortion Effects
|
|
506
437
|
|
|
507
|
-
| Effect Type
|
|
508
|
-
|
|
509
|
-
| `liquid`
|
|
510
|
-
| `mirror`
|
|
511
|
-
| `shifter`
|
|
512
|
-
| `radial_pixel` | Circular pixelation
|
|
513
|
-
| `tv_glitch`
|
|
438
|
+
| Effect Type | Description | Key Properties |
|
|
439
|
+
|-------------|-------------|----------------|
|
|
440
|
+
| `liquid` | Flowing, organic warping | `amount`, `scale`, `time` |
|
|
441
|
+
| `mirror` | Reflection along a side | `side` (0=Left, 1=Right, 2=Top, 3=Bottom) |
|
|
442
|
+
| `shifter` | Chromatic aberration | `amount`, `angle` |
|
|
443
|
+
| `radial_pixel` | Circular pixelation | `radius`, `segments` |
|
|
444
|
+
| `tv_glitch` | Analog TV interference | `distortion`, `distortion2`, `speed`, `rollSpeed` |
|
|
514
445
|
|
|
515
446
|
## Next Steps
|
|
516
447
|
|
|
517
448
|
- [Apply Filters and Effects](./filters-and-effects/apply.md) - Learn the foundational effect APIs
|
|
518
449
|
- [Blur Effects](./filters-and-effects/blur.md) - Apply blur techniques for depth and focus effects
|
|
519
450
|
|
|
451
|
+
|
|
452
|
+
|
|
520
453
|
---
|
|
521
454
|
|
|
522
455
|
## More Resources
|
|
523
456
|
|
|
524
|
-
- **[
|
|
457
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
525
458
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
526
|
-
- **[Web Documentation](./
|
|
527
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
459
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
460
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|