@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,4 +1,4 @@
|
|
|
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) > [Colors](./colors.md) > [Replace Individual Colors](./colors/replace.md)
|
|
4
4
|
|
|
@@ -6,350 +6,280 @@
|
|
|
6
6
|
|
|
7
7
|
Selectively replace specific colors in images using CE.SDK's Recolor and Green Screen effects.
|
|
8
8
|
|
|
9
|
-

|
|
10
|
-
|
|
11
9
|
> **Reading time:** 10 minutes
|
|
12
10
|
>
|
|
13
11
|
> **Resources:**
|
|
14
12
|
>
|
|
15
13
|
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
16
|
-
>
|
|
17
|
-
> - [
|
|
18
|
-
>
|
|
14
|
+
>
|
|
15
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-colors-replace-server-js)
|
|
16
|
+
>
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-colors-replace-server-js)
|
|
19
18
|
|
|
20
19
|
CE.SDK provides two specialized effects for color replacement: the **Recolor** effect swaps pixels matching a source color with a target color, while the **Green Screen** effect removes pixels matching a specified color to create transparency. Both effects use configurable tolerance parameters to control which pixels are affected, enabling use cases from product color variations to background removal.
|
|
21
20
|
|
|
22
|
-
```typescript file=@cesdk_web_examples/guides-colors-replace-
|
|
23
|
-
import
|
|
24
|
-
|
|
25
|
-
import {
|
|
26
|
-
BlurAssetSource,
|
|
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';
|
|
21
|
+
```typescript file=@cesdk_web_examples/guides-colors-replace-server-js/server-js.ts reference-only
|
|
22
|
+
import CreativeEngine from '@cesdk/node';
|
|
23
|
+
import { config } from 'dotenv';
|
|
24
|
+
import { writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
42
25
|
import { calculateGridLayout } from './utils';
|
|
43
26
|
|
|
27
|
+
// Load environment variables
|
|
28
|
+
config();
|
|
29
|
+
|
|
44
30
|
/**
|
|
45
|
-
* CE.SDK
|
|
31
|
+
* CE.SDK Server Guide: Replace Colors
|
|
46
32
|
*
|
|
47
33
|
* Demonstrates color replacement using Recolor and Green Screen effects:
|
|
48
|
-
* - Using the built-in effects UI
|
|
49
34
|
* - Creating and applying Recolor effects
|
|
50
35
|
* - Creating and applying Green Screen effects
|
|
51
36
|
* - Configuring effect properties
|
|
52
37
|
* - Managing multiple effects
|
|
53
38
|
*/
|
|
54
|
-
class Example implements EditorPlugin {
|
|
55
|
-
name = packageJson.name;
|
|
56
39
|
|
|
57
|
-
|
|
40
|
+
// Initialize CE.SDK engine in headless mode
|
|
41
|
+
const engine = await CreativeEngine.init({
|
|
42
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
|
|
43
|
+
// license: process.env.CESDK_LICENSE, // Optional (trial mode available)
|
|
44
|
+
});
|
|
58
45
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
46
|
+
try {
|
|
47
|
+
// Create a design scene with specific page dimensions
|
|
48
|
+
engine.scene.create('VerticalStack', {
|
|
49
|
+
page: { size: { width: 800, height: 600 } },
|
|
50
|
+
});
|
|
51
|
+
const page = engine.block.findByType('page')[0];
|
|
52
|
+
|
|
53
|
+
const pageWidth = engine.block.getWidth(page);
|
|
54
|
+
const pageHeight = engine.block.getHeight(page);
|
|
55
|
+
|
|
56
|
+
// Calculate responsive grid layout for 6 examples
|
|
57
|
+
const layout = calculateGridLayout(pageWidth, pageHeight, 6);
|
|
58
|
+
const { blockWidth, blockHeight, getPosition } = layout;
|
|
59
|
+
|
|
60
|
+
// Use sample images for demonstrations
|
|
61
|
+
const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
|
|
62
|
+
const blockSize = { width: blockWidth, height: blockHeight };
|
|
63
|
+
|
|
64
|
+
// Create a Recolor effect to swap red colors to blue
|
|
65
|
+
const block1 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
66
|
+
engine.block.appendChild(page, block1);
|
|
67
|
+
|
|
68
|
+
const recolorEffect = engine.block.createEffect('recolor');
|
|
69
|
+
engine.block.setColor(recolorEffect, 'effect/recolor/fromColor', {
|
|
70
|
+
r: 1.0,
|
|
71
|
+
g: 0.0,
|
|
72
|
+
b: 0.0,
|
|
73
|
+
a: 1.0,
|
|
74
|
+
}); // Red source color
|
|
75
|
+
engine.block.setColor(recolorEffect, 'effect/recolor/toColor', {
|
|
76
|
+
r: 0.0,
|
|
77
|
+
g: 0.5,
|
|
78
|
+
b: 1.0,
|
|
79
|
+
a: 1.0,
|
|
80
|
+
}); // Blue target color
|
|
81
|
+
engine.block.appendEffect(block1, recolorEffect);
|
|
82
|
+
|
|
83
|
+
// Configure color matching precision for Recolor effect
|
|
84
|
+
const block2 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
85
|
+
engine.block.appendChild(page, block2);
|
|
86
|
+
|
|
87
|
+
const recolorEffect2 = engine.block.createEffect('recolor');
|
|
88
|
+
engine.block.setColor(recolorEffect2, 'effect/recolor/fromColor', {
|
|
89
|
+
r: 0.8,
|
|
90
|
+
g: 0.6,
|
|
91
|
+
b: 0.4,
|
|
92
|
+
a: 1.0,
|
|
93
|
+
}); // Skin tone source
|
|
94
|
+
engine.block.setColor(recolorEffect2, 'effect/recolor/toColor', {
|
|
95
|
+
r: 0.3,
|
|
96
|
+
g: 0.7,
|
|
97
|
+
b: 0.3,
|
|
98
|
+
a: 1.0,
|
|
99
|
+
}); // Green tint
|
|
100
|
+
// Adjust color match tolerance (0-1, higher = more inclusive)
|
|
101
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/colorMatch', 0.3);
|
|
102
|
+
// Adjust brightness match tolerance
|
|
103
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/brightnessMatch', 0.2);
|
|
104
|
+
// Adjust edge smoothness
|
|
105
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/smoothness', 0.1);
|
|
106
|
+
engine.block.appendEffect(block2, recolorEffect2);
|
|
107
|
+
|
|
108
|
+
// Create a Green Screen effect to remove green backgrounds
|
|
109
|
+
const block3 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
110
|
+
engine.block.appendChild(page, block3);
|
|
111
|
+
|
|
112
|
+
const greenScreenEffect = engine.block.createEffect('green_screen');
|
|
113
|
+
// Specify the color to remove (green)
|
|
114
|
+
engine.block.setColor(greenScreenEffect, 'effect/green_screen/fromColor', {
|
|
115
|
+
r: 0.0,
|
|
116
|
+
g: 1.0,
|
|
117
|
+
b: 0.0,
|
|
118
|
+
a: 1.0,
|
|
119
|
+
});
|
|
120
|
+
engine.block.appendEffect(block3, greenScreenEffect);
|
|
121
|
+
|
|
122
|
+
// Fine-tune Green Screen removal parameters
|
|
123
|
+
const block4 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
124
|
+
engine.block.appendChild(page, block4);
|
|
125
|
+
|
|
126
|
+
const greenScreenEffect2 = engine.block.createEffect('green_screen');
|
|
127
|
+
engine.block.setColor(greenScreenEffect2, 'effect/green_screen/fromColor', {
|
|
128
|
+
r: 0.2,
|
|
129
|
+
g: 0.8,
|
|
130
|
+
b: 0.3,
|
|
131
|
+
a: 1.0,
|
|
132
|
+
}); // Specific green shade
|
|
133
|
+
// Adjust color match tolerance
|
|
134
|
+
engine.block.setFloat(
|
|
135
|
+
greenScreenEffect2,
|
|
136
|
+
'effect/green_screen/colorMatch',
|
|
137
|
+
0.4
|
|
138
|
+
);
|
|
139
|
+
// Adjust edge smoothness for cleaner removal
|
|
140
|
+
engine.block.setFloat(
|
|
141
|
+
greenScreenEffect2,
|
|
142
|
+
'effect/green_screen/smoothness',
|
|
143
|
+
0.2
|
|
144
|
+
);
|
|
145
|
+
// Reduce color spill from green background
|
|
146
|
+
engine.block.setFloat(greenScreenEffect2, 'effect/green_screen/spill', 0.5);
|
|
147
|
+
engine.block.appendEffect(block4, greenScreenEffect2);
|
|
148
|
+
|
|
149
|
+
// Demonstrate managing multiple effects on a block
|
|
150
|
+
const block5 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
151
|
+
engine.block.appendChild(page, block5);
|
|
152
|
+
|
|
153
|
+
// Add multiple effects to the same block
|
|
154
|
+
const recolor1 = engine.block.createEffect('recolor');
|
|
155
|
+
engine.block.setColor(recolor1, 'effect/recolor/fromColor', {
|
|
156
|
+
r: 1.0,
|
|
157
|
+
g: 0.0,
|
|
158
|
+
b: 0.0,
|
|
159
|
+
a: 1.0,
|
|
160
|
+
});
|
|
161
|
+
engine.block.setColor(recolor1, 'effect/recolor/toColor', {
|
|
162
|
+
r: 0.0,
|
|
163
|
+
g: 0.0,
|
|
164
|
+
b: 1.0,
|
|
165
|
+
a: 1.0,
|
|
166
|
+
});
|
|
167
|
+
engine.block.appendEffect(block5, recolor1);
|
|
168
|
+
|
|
169
|
+
const recolor2 = engine.block.createEffect('recolor');
|
|
170
|
+
engine.block.setColor(recolor2, 'effect/recolor/fromColor', {
|
|
171
|
+
r: 0.0,
|
|
172
|
+
g: 1.0,
|
|
173
|
+
b: 0.0,
|
|
174
|
+
a: 1.0,
|
|
175
|
+
});
|
|
176
|
+
engine.block.setColor(recolor2, 'effect/recolor/toColor', {
|
|
177
|
+
r: 1.0,
|
|
178
|
+
g: 0.5,
|
|
179
|
+
b: 0.0,
|
|
180
|
+
a: 1.0,
|
|
181
|
+
});
|
|
182
|
+
engine.block.appendEffect(block5, recolor2);
|
|
183
|
+
|
|
184
|
+
// Get all effects on the block
|
|
185
|
+
const effects = engine.block.getEffects(block5);
|
|
186
|
+
// eslint-disable-next-line no-console
|
|
187
|
+
console.log('Number of effects:', effects.length); // 2
|
|
188
|
+
|
|
189
|
+
// Disable the first effect without removing it
|
|
190
|
+
engine.block.setEffectEnabled(effects[0], false);
|
|
191
|
+
|
|
192
|
+
// Check if effect is enabled
|
|
193
|
+
const isEnabled = engine.block.isEffectEnabled(effects[0]);
|
|
194
|
+
// eslint-disable-next-line no-console
|
|
195
|
+
console.log('First effect enabled:', isEnabled); // false
|
|
196
|
+
|
|
197
|
+
// Apply consistent color replacement across multiple blocks
|
|
198
|
+
const block6 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
199
|
+
engine.block.appendChild(page, block6);
|
|
200
|
+
|
|
201
|
+
// Find all image blocks in the scene
|
|
202
|
+
const allBlocks = engine.block.findByType('//ly.img.ubq/graphic');
|
|
203
|
+
|
|
204
|
+
// Apply a consistent recolor effect to each block
|
|
205
|
+
allBlocks.forEach((blockId) => {
|
|
206
|
+
// Skip if block already has effects
|
|
207
|
+
if (engine.block.getEffects(blockId).length > 0) {
|
|
208
|
+
return;
|
|
62
209
|
}
|
|
63
210
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
// Add asset source plugins
|
|
67
|
-
await cesdk.addPlugin(new BlurAssetSource());
|
|
68
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
69
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
70
|
-
await cesdk.addPlugin(
|
|
71
|
-
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
72
|
-
);
|
|
73
|
-
await cesdk.addPlugin(
|
|
74
|
-
new DemoAssetSources({
|
|
75
|
-
include: [
|
|
76
|
-
'ly.img.templates.blank.*',
|
|
77
|
-
'ly.img.templates.presentation.*',
|
|
78
|
-
'ly.img.templates.print.*',
|
|
79
|
-
'ly.img.templates.social.*',
|
|
80
|
-
'ly.img.image.*'
|
|
81
|
-
]
|
|
82
|
-
})
|
|
83
|
-
);
|
|
84
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
85
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
86
|
-
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
87
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
88
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
89
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
90
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
91
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
92
|
-
|
|
93
|
-
await cesdk.actions.run('scene.create', {
|
|
94
|
-
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
const engine = cesdk.engine;
|
|
98
|
-
const page = engine.block.findByType('page')[0];
|
|
99
|
-
|
|
100
|
-
const pageWidth = engine.block.getWidth(page);
|
|
101
|
-
const pageHeight = engine.block.getHeight(page);
|
|
102
|
-
|
|
103
|
-
// Enable effects in the inspector panel using the Feature API
|
|
104
|
-
cesdk.feature.enable('ly.img.effect');
|
|
105
|
-
|
|
106
|
-
// Calculate responsive grid layout for 6 examples
|
|
107
|
-
const layout = calculateGridLayout(pageWidth, pageHeight, 6);
|
|
108
|
-
const { blockWidth, blockHeight, getPosition } = layout;
|
|
109
|
-
|
|
110
|
-
// Use sample images for demonstrations
|
|
111
|
-
const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
|
|
112
|
-
const blockSize = { width: blockWidth, height: blockHeight };
|
|
113
|
-
|
|
114
|
-
// Create a Recolor effect to swap red colors to blue
|
|
115
|
-
const block1 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
116
|
-
engine.block.appendChild(page, block1);
|
|
117
|
-
|
|
118
|
-
const recolorEffect = engine.block.createEffect('recolor');
|
|
119
|
-
engine.block.setColor(recolorEffect, 'effect/recolor/fromColor', {
|
|
120
|
-
r: 1.0,
|
|
121
|
-
g: 0.0,
|
|
122
|
-
b: 0.0,
|
|
123
|
-
a: 1.0
|
|
124
|
-
}); // Red source color
|
|
125
|
-
engine.block.setColor(recolorEffect, 'effect/recolor/toColor', {
|
|
126
|
-
r: 0.0,
|
|
127
|
-
g: 0.5,
|
|
128
|
-
b: 1.0,
|
|
129
|
-
a: 1.0
|
|
130
|
-
}); // Blue target color
|
|
131
|
-
engine.block.appendEffect(block1, recolorEffect);
|
|
132
|
-
|
|
133
|
-
// Select this block to show the effects panel
|
|
134
|
-
engine.block.setSelected(block1, true);
|
|
135
|
-
|
|
136
|
-
// Configure color matching precision for Recolor effect
|
|
137
|
-
const block2 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
138
|
-
engine.block.appendChild(page, block2);
|
|
139
|
-
|
|
140
|
-
const recolorEffect2 = engine.block.createEffect('recolor');
|
|
141
|
-
engine.block.setColor(recolorEffect2, 'effect/recolor/fromColor', {
|
|
211
|
+
const batchRecolor = engine.block.createEffect('recolor');
|
|
212
|
+
engine.block.setColor(batchRecolor, 'effect/recolor/fromColor', {
|
|
142
213
|
r: 0.8,
|
|
143
|
-
g: 0.6,
|
|
144
|
-
b: 0.4,
|
|
145
|
-
a: 1.0
|
|
146
|
-
}); // Skin tone source
|
|
147
|
-
engine.block.setColor(recolorEffect2, 'effect/recolor/toColor', {
|
|
148
|
-
r: 0.3,
|
|
149
214
|
g: 0.7,
|
|
150
|
-
b: 0.
|
|
151
|
-
a: 1.0
|
|
152
|
-
}); // Green tint
|
|
153
|
-
// Adjust color match tolerance (0-1, higher = more inclusive)
|
|
154
|
-
engine.block.setFloat(recolorEffect2, 'effect/recolor/colorMatch', 0.3);
|
|
155
|
-
// Adjust brightness match tolerance
|
|
156
|
-
engine.block.setFloat(
|
|
157
|
-
recolorEffect2,
|
|
158
|
-
'effect/recolor/brightnessMatch',
|
|
159
|
-
0.2
|
|
160
|
-
);
|
|
161
|
-
// Adjust edge smoothness
|
|
162
|
-
engine.block.setFloat(recolorEffect2, 'effect/recolor/smoothness', 0.1);
|
|
163
|
-
engine.block.appendEffect(block2, recolorEffect2);
|
|
164
|
-
|
|
165
|
-
// Create a Green Screen effect to remove green backgrounds
|
|
166
|
-
const block3 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
167
|
-
engine.block.appendChild(page, block3);
|
|
168
|
-
|
|
169
|
-
const greenScreenEffect = engine.block.createEffect('green_screen');
|
|
170
|
-
// Specify the color to remove (green)
|
|
171
|
-
engine.block.setColor(greenScreenEffect, 'effect/green_screen/fromColor', {
|
|
172
|
-
r: 0.0,
|
|
173
|
-
g: 1.0,
|
|
174
|
-
b: 0.0,
|
|
175
|
-
a: 1.0
|
|
176
|
-
});
|
|
177
|
-
engine.block.appendEffect(block3, greenScreenEffect);
|
|
178
|
-
|
|
179
|
-
// Fine-tune Green Screen removal parameters
|
|
180
|
-
const block4 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
181
|
-
engine.block.appendChild(page, block4);
|
|
182
|
-
|
|
183
|
-
const greenScreenEffect2 = engine.block.createEffect('green_screen');
|
|
184
|
-
engine.block.setColor(greenScreenEffect2, 'effect/green_screen/fromColor', {
|
|
185
|
-
r: 0.2,
|
|
186
|
-
g: 0.8,
|
|
187
|
-
b: 0.3,
|
|
188
|
-
a: 1.0
|
|
189
|
-
}); // Specific green shade
|
|
190
|
-
// Adjust color match tolerance
|
|
191
|
-
engine.block.setFloat(
|
|
192
|
-
greenScreenEffect2,
|
|
193
|
-
'effect/green_screen/colorMatch',
|
|
194
|
-
0.4
|
|
195
|
-
);
|
|
196
|
-
// Adjust edge smoothness for cleaner removal
|
|
197
|
-
engine.block.setFloat(
|
|
198
|
-
greenScreenEffect2,
|
|
199
|
-
'effect/green_screen/smoothness',
|
|
200
|
-
0.2
|
|
201
|
-
);
|
|
202
|
-
// Reduce color spill from green background
|
|
203
|
-
engine.block.setFloat(greenScreenEffect2, 'effect/green_screen/spill', 0.5);
|
|
204
|
-
engine.block.appendEffect(block4, greenScreenEffect2);
|
|
205
|
-
|
|
206
|
-
// Demonstrate managing multiple effects on a block
|
|
207
|
-
const block5 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
208
|
-
engine.block.appendChild(page, block5);
|
|
209
|
-
|
|
210
|
-
// Add multiple effects to the same block
|
|
211
|
-
const recolor1 = engine.block.createEffect('recolor');
|
|
212
|
-
engine.block.setColor(recolor1, 'effect/recolor/fromColor', {
|
|
213
|
-
r: 1.0,
|
|
214
|
-
g: 0.0,
|
|
215
|
-
b: 0.0,
|
|
216
|
-
a: 1.0
|
|
217
|
-
});
|
|
218
|
-
engine.block.setColor(recolor1, 'effect/recolor/toColor', {
|
|
219
|
-
r: 0.0,
|
|
220
|
-
g: 0.0,
|
|
221
|
-
b: 1.0,
|
|
222
|
-
a: 1.0
|
|
223
|
-
});
|
|
224
|
-
engine.block.appendEffect(block5, recolor1);
|
|
225
|
-
|
|
226
|
-
const recolor2 = engine.block.createEffect('recolor');
|
|
227
|
-
engine.block.setColor(recolor2, 'effect/recolor/fromColor', {
|
|
228
|
-
r: 0.0,
|
|
229
|
-
g: 1.0,
|
|
230
|
-
b: 0.0,
|
|
231
|
-
a: 1.0
|
|
232
|
-
});
|
|
233
|
-
engine.block.setColor(recolor2, 'effect/recolor/toColor', {
|
|
234
|
-
r: 1.0,
|
|
235
|
-
g: 0.5,
|
|
236
|
-
b: 0.0,
|
|
237
|
-
a: 1.0
|
|
238
|
-
});
|
|
239
|
-
engine.block.appendEffect(block5, recolor2);
|
|
240
|
-
|
|
241
|
-
// Get all effects on the block
|
|
242
|
-
const effects = engine.block.getEffects(block5);
|
|
243
|
-
// eslint-disable-next-line no-console
|
|
244
|
-
console.log('Number of effects:', effects.length); // 2
|
|
245
|
-
|
|
246
|
-
// Disable the first effect without removing it
|
|
247
|
-
engine.block.setEffectEnabled(effects[0], false);
|
|
248
|
-
|
|
249
|
-
// Check if effect is enabled
|
|
250
|
-
const isEnabled = engine.block.isEffectEnabled(effects[0]);
|
|
251
|
-
// eslint-disable-next-line no-console
|
|
252
|
-
console.log('First effect enabled:', isEnabled); // false
|
|
253
|
-
|
|
254
|
-
// Apply consistent color replacement across multiple blocks
|
|
255
|
-
const block6 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
256
|
-
engine.block.appendChild(page, block6);
|
|
257
|
-
|
|
258
|
-
// Find all image blocks in the scene
|
|
259
|
-
const allBlocks = engine.block.findByType('//ly.img.ubq/graphic');
|
|
260
|
-
|
|
261
|
-
// Apply a consistent recolor effect to each block
|
|
262
|
-
allBlocks.forEach((blockId) => {
|
|
263
|
-
// Skip if block already has effects
|
|
264
|
-
if (engine.block.getEffects(blockId).length > 0) {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
const batchRecolor = engine.block.createEffect('recolor');
|
|
269
|
-
engine.block.setColor(batchRecolor, 'effect/recolor/fromColor', {
|
|
270
|
-
r: 0.8,
|
|
271
|
-
g: 0.7,
|
|
272
|
-
b: 0.6,
|
|
273
|
-
a: 1.0
|
|
274
|
-
});
|
|
275
|
-
engine.block.setColor(batchRecolor, 'effect/recolor/toColor', {
|
|
276
|
-
r: 0.6,
|
|
277
|
-
g: 0.7,
|
|
278
|
-
b: 0.9,
|
|
279
|
-
a: 1.0
|
|
280
|
-
});
|
|
281
|
-
engine.block.setFloat(batchRecolor, 'effect/recolor/colorMatch', 0.25);
|
|
282
|
-
engine.block.appendEffect(blockId, batchRecolor);
|
|
215
|
+
b: 0.6,
|
|
216
|
+
a: 1.0,
|
|
283
217
|
});
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
engine.block.setPositionX(block, pos.x);
|
|
290
|
-
engine.block.setPositionY(block, pos.y);
|
|
218
|
+
engine.block.setColor(batchRecolor, 'effect/recolor/toColor', {
|
|
219
|
+
r: 0.6,
|
|
220
|
+
g: 0.7,
|
|
221
|
+
b: 0.9,
|
|
222
|
+
a: 1.0,
|
|
291
223
|
});
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
224
|
+
engine.block.setFloat(batchRecolor, 'effect/recolor/colorMatch', 0.25);
|
|
225
|
+
engine.block.appendEffect(blockId, batchRecolor);
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
// Position all blocks in a grid layout
|
|
229
|
+
const blocks = [block1, block2, block3, block4, block5, block6];
|
|
230
|
+
blocks.forEach((block, index) => {
|
|
231
|
+
const pos = getPosition(index);
|
|
232
|
+
engine.block.setPositionX(block, pos.x);
|
|
233
|
+
engine.block.setPositionY(block, pos.y);
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
// Export the result to PNG
|
|
237
|
+
const outputDir = './output';
|
|
238
|
+
if (!existsSync(outputDir)) {
|
|
239
|
+
mkdirSync(outputDir, { recursive: true });
|
|
296
240
|
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
export default Example;
|
|
300
|
-
```
|
|
301
241
|
|
|
302
|
-
|
|
242
|
+
const blob = await engine.block.export(page, { mimeType: 'image/png' });
|
|
243
|
+
const buffer = Buffer.from(await blob.arrayBuffer());
|
|
244
|
+
writeFileSync(`${outputDir}/replace-colors-result.png`, buffer);
|
|
303
245
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
```typescript highlight=highlight-enable-effects-panel
|
|
311
|
-
// Enable effects in the inspector panel using the Feature API
|
|
312
|
-
cesdk.feature.enable('ly.img.effect');
|
|
246
|
+
// eslint-disable-next-line no-console
|
|
247
|
+
console.log('✓ Exported result to output/replace-colors-result.png');
|
|
248
|
+
} finally {
|
|
249
|
+
// Always dispose the engine to free resources
|
|
250
|
+
engine.dispose();
|
|
251
|
+
}
|
|
313
252
|
```
|
|
314
253
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
- Select an image block and open the effects panel
|
|
318
|
-
- Add Recolor or Green Screen effects from the available options
|
|
319
|
-
- Use visual color pickers to select source and target colors
|
|
320
|
-
- Adjust tolerance sliders for color match, brightness match, and smoothness
|
|
321
|
-
- See changes applied in real-time on the canvas
|
|
254
|
+
This guide covers how to apply and manage color replacement effects programmatically using the Block API in a headless server environment.
|
|
322
255
|
|
|
323
256
|
## Programmatic Color Replacement
|
|
324
257
|
|
|
325
|
-
|
|
258
|
+
Create and apply color replacement effects programmatically using the Block API. Effects are created as blocks, configured with properties, and appended to target blocks.
|
|
326
259
|
|
|
327
260
|
### Creating a Recolor Effect
|
|
328
261
|
|
|
329
262
|
The Recolor effect replaces pixels matching a source color with a target color. Use `engine.block.createEffect('recolor')` to create the effect, then set the `fromColor` and `toColor` properties using `engine.block.setColor()`.
|
|
330
263
|
|
|
331
264
|
```typescript highlight=highlight-create-recolor-effect
|
|
332
|
-
// Create a Recolor effect to swap red colors to blue
|
|
333
|
-
const block1 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
334
|
-
engine.block.appendChild(page, block1);
|
|
335
|
-
|
|
336
|
-
const recolorEffect = engine.block.createEffect('recolor');
|
|
337
|
-
engine.block.setColor(recolorEffect, 'effect/recolor/fromColor', {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
}); // Red source color
|
|
343
|
-
engine.block.setColor(recolorEffect, 'effect/recolor/toColor', {
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
}); // Blue target color
|
|
349
|
-
engine.block.appendEffect(block1, recolorEffect);
|
|
350
|
-
|
|
351
|
-
// Select this block to show the effects panel
|
|
352
|
-
engine.block.setSelected(block1, true);
|
|
265
|
+
// Create a Recolor effect to swap red colors to blue
|
|
266
|
+
const block1 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
267
|
+
engine.block.appendChild(page, block1);
|
|
268
|
+
|
|
269
|
+
const recolorEffect = engine.block.createEffect('recolor');
|
|
270
|
+
engine.block.setColor(recolorEffect, 'effect/recolor/fromColor', {
|
|
271
|
+
r: 1.0,
|
|
272
|
+
g: 0.0,
|
|
273
|
+
b: 0.0,
|
|
274
|
+
a: 1.0,
|
|
275
|
+
}); // Red source color
|
|
276
|
+
engine.block.setColor(recolorEffect, 'effect/recolor/toColor', {
|
|
277
|
+
r: 0.0,
|
|
278
|
+
g: 0.5,
|
|
279
|
+
b: 1.0,
|
|
280
|
+
a: 1.0,
|
|
281
|
+
}); // Blue target color
|
|
282
|
+
engine.block.appendEffect(block1, recolorEffect);
|
|
353
283
|
```
|
|
354
284
|
|
|
355
285
|
The `fromColor` specifies which color to match in the image, and `toColor` defines the replacement color. Colors use RGBA format with values from 0 to 1.
|
|
@@ -359,30 +289,30 @@ The `fromColor` specifies which color to match in the image, and `toColor` defin
|
|
|
359
289
|
Fine-tune which pixels are affected by adjusting the tolerance parameters with `engine.block.setFloat()`:
|
|
360
290
|
|
|
361
291
|
```typescript highlight=highlight-configure-recolor-matching
|
|
362
|
-
// Configure color matching precision for Recolor effect
|
|
363
|
-
const block2 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
364
|
-
engine.block.appendChild(page, block2);
|
|
365
|
-
|
|
366
|
-
const recolorEffect2 = engine.block.createEffect('recolor');
|
|
367
|
-
engine.block.setColor(recolorEffect2, 'effect/recolor/fromColor', {
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
}); // Skin tone source
|
|
373
|
-
engine.block.setColor(recolorEffect2, 'effect/recolor/toColor', {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
}); // Green tint
|
|
379
|
-
// Adjust color match tolerance (0-1, higher = more inclusive)
|
|
380
|
-
engine.block.setFloat(recolorEffect2, 'effect/recolor/colorMatch', 0.3);
|
|
381
|
-
// Adjust brightness match tolerance
|
|
382
|
-
engine.block.setFloat(recolorEffect2, 'effect/recolor/brightnessMatch', 0.2);
|
|
383
|
-
// Adjust edge smoothness
|
|
384
|
-
engine.block.setFloat(recolorEffect2, 'effect/recolor/smoothness', 0.1);
|
|
385
|
-
engine.block.appendEffect(block2, recolorEffect2);
|
|
292
|
+
// Configure color matching precision for Recolor effect
|
|
293
|
+
const block2 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
294
|
+
engine.block.appendChild(page, block2);
|
|
295
|
+
|
|
296
|
+
const recolorEffect2 = engine.block.createEffect('recolor');
|
|
297
|
+
engine.block.setColor(recolorEffect2, 'effect/recolor/fromColor', {
|
|
298
|
+
r: 0.8,
|
|
299
|
+
g: 0.6,
|
|
300
|
+
b: 0.4,
|
|
301
|
+
a: 1.0,
|
|
302
|
+
}); // Skin tone source
|
|
303
|
+
engine.block.setColor(recolorEffect2, 'effect/recolor/toColor', {
|
|
304
|
+
r: 0.3,
|
|
305
|
+
g: 0.7,
|
|
306
|
+
b: 0.3,
|
|
307
|
+
a: 1.0,
|
|
308
|
+
}); // Green tint
|
|
309
|
+
// Adjust color match tolerance (0-1, higher = more inclusive)
|
|
310
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/colorMatch', 0.3);
|
|
311
|
+
// Adjust brightness match tolerance
|
|
312
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/brightnessMatch', 0.2);
|
|
313
|
+
// Adjust edge smoothness
|
|
314
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/smoothness', 0.1);
|
|
315
|
+
engine.block.appendEffect(block2, recolorEffect2);
|
|
386
316
|
```
|
|
387
317
|
|
|
388
318
|
The Recolor effect has three precision parameters:
|
|
@@ -396,19 +326,19 @@ The Recolor effect has three precision parameters:
|
|
|
396
326
|
The Green Screen effect removes pixels matching a specified color, making them transparent. This is commonly used for background removal.
|
|
397
327
|
|
|
398
328
|
```typescript highlight=highlight-create-green-screen-effect
|
|
399
|
-
// Create a Green Screen effect to remove green backgrounds
|
|
400
|
-
const block3 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
401
|
-
engine.block.appendChild(page, block3);
|
|
402
|
-
|
|
403
|
-
const greenScreenEffect = engine.block.createEffect('green_screen');
|
|
404
|
-
// Specify the color to remove (green)
|
|
405
|
-
engine.block.setColor(greenScreenEffect, 'effect/green_screen/fromColor', {
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
});
|
|
411
|
-
engine.block.appendEffect(block3, greenScreenEffect);
|
|
329
|
+
// Create a Green Screen effect to remove green backgrounds
|
|
330
|
+
const block3 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
331
|
+
engine.block.appendChild(page, block3);
|
|
332
|
+
|
|
333
|
+
const greenScreenEffect = engine.block.createEffect('green_screen');
|
|
334
|
+
// Specify the color to remove (green)
|
|
335
|
+
engine.block.setColor(greenScreenEffect, 'effect/green_screen/fromColor', {
|
|
336
|
+
r: 0.0,
|
|
337
|
+
g: 1.0,
|
|
338
|
+
b: 0.0,
|
|
339
|
+
a: 1.0,
|
|
340
|
+
});
|
|
341
|
+
engine.block.appendEffect(block3, greenScreenEffect);
|
|
412
342
|
```
|
|
413
343
|
|
|
414
344
|
Set the `fromColor` property to specify which color to remove. The effect will make matching pixels transparent.
|
|
@@ -418,32 +348,32 @@ Set the `fromColor` property to specify which color to remove. The effect will m
|
|
|
418
348
|
Control the precision of color removal using these parameters:
|
|
419
349
|
|
|
420
350
|
```typescript highlight=highlight-configure-green-screen
|
|
421
|
-
// Fine-tune Green Screen removal parameters
|
|
422
|
-
const block4 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
423
|
-
engine.block.appendChild(page, block4);
|
|
424
|
-
|
|
425
|
-
const greenScreenEffect2 = engine.block.createEffect('green_screen');
|
|
426
|
-
engine.block.setColor(greenScreenEffect2, 'effect/green_screen/fromColor', {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
}); // Specific green shade
|
|
432
|
-
// Adjust color match tolerance
|
|
433
|
-
engine.block.setFloat(
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
);
|
|
438
|
-
// Adjust edge smoothness for cleaner removal
|
|
439
|
-
engine.block.setFloat(
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
);
|
|
444
|
-
// Reduce color spill from green background
|
|
445
|
-
engine.block.setFloat(greenScreenEffect2, 'effect/green_screen/spill', 0.5);
|
|
446
|
-
engine.block.appendEffect(block4, greenScreenEffect2);
|
|
351
|
+
// Fine-tune Green Screen removal parameters
|
|
352
|
+
const block4 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
353
|
+
engine.block.appendChild(page, block4);
|
|
354
|
+
|
|
355
|
+
const greenScreenEffect2 = engine.block.createEffect('green_screen');
|
|
356
|
+
engine.block.setColor(greenScreenEffect2, 'effect/green_screen/fromColor', {
|
|
357
|
+
r: 0.2,
|
|
358
|
+
g: 0.8,
|
|
359
|
+
b: 0.3,
|
|
360
|
+
a: 1.0,
|
|
361
|
+
}); // Specific green shade
|
|
362
|
+
// Adjust color match tolerance
|
|
363
|
+
engine.block.setFloat(
|
|
364
|
+
greenScreenEffect2,
|
|
365
|
+
'effect/green_screen/colorMatch',
|
|
366
|
+
0.4
|
|
367
|
+
);
|
|
368
|
+
// Adjust edge smoothness for cleaner removal
|
|
369
|
+
engine.block.setFloat(
|
|
370
|
+
greenScreenEffect2,
|
|
371
|
+
'effect/green_screen/smoothness',
|
|
372
|
+
0.2
|
|
373
|
+
);
|
|
374
|
+
// Reduce color spill from green background
|
|
375
|
+
engine.block.setFloat(greenScreenEffect2, 'effect/green_screen/spill', 0.5);
|
|
376
|
+
engine.block.appendEffect(block4, greenScreenEffect2);
|
|
447
377
|
```
|
|
448
378
|
|
|
449
379
|
The Green Screen effect parameters:
|
|
@@ -457,53 +387,53 @@ The Green Screen effect parameters:
|
|
|
457
387
|
A single block can have multiple effects applied. Use the effect management APIs to list, toggle, and remove effects.
|
|
458
388
|
|
|
459
389
|
```typescript highlight=highlight-manage-effects
|
|
460
|
-
// Demonstrate managing multiple effects on a block
|
|
461
|
-
const block5 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
462
|
-
engine.block.appendChild(page, block5);
|
|
463
|
-
|
|
464
|
-
// Add multiple effects to the same block
|
|
465
|
-
const recolor1 = engine.block.createEffect('recolor');
|
|
466
|
-
engine.block.setColor(recolor1, 'effect/recolor/fromColor', {
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
});
|
|
472
|
-
engine.block.setColor(recolor1, 'effect/recolor/toColor', {
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
});
|
|
478
|
-
engine.block.appendEffect(block5, recolor1);
|
|
479
|
-
|
|
480
|
-
const recolor2 = engine.block.createEffect('recolor');
|
|
481
|
-
engine.block.setColor(recolor2, 'effect/recolor/fromColor', {
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
});
|
|
487
|
-
engine.block.setColor(recolor2, 'effect/recolor/toColor', {
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
});
|
|
493
|
-
engine.block.appendEffect(block5, recolor2);
|
|
494
|
-
|
|
495
|
-
// Get all effects on the block
|
|
496
|
-
const effects = engine.block.getEffects(block5);
|
|
497
|
-
// eslint-disable-next-line no-console
|
|
498
|
-
console.log('Number of effects:', effects.length); // 2
|
|
499
|
-
|
|
500
|
-
// Disable the first effect without removing it
|
|
501
|
-
engine.block.setEffectEnabled(effects[0], false);
|
|
502
|
-
|
|
503
|
-
// Check if effect is enabled
|
|
504
|
-
const isEnabled = engine.block.isEffectEnabled(effects[0]);
|
|
505
|
-
// eslint-disable-next-line no-console
|
|
506
|
-
console.log('First effect enabled:', isEnabled); // false
|
|
390
|
+
// Demonstrate managing multiple effects on a block
|
|
391
|
+
const block5 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
392
|
+
engine.block.appendChild(page, block5);
|
|
393
|
+
|
|
394
|
+
// Add multiple effects to the same block
|
|
395
|
+
const recolor1 = engine.block.createEffect('recolor');
|
|
396
|
+
engine.block.setColor(recolor1, 'effect/recolor/fromColor', {
|
|
397
|
+
r: 1.0,
|
|
398
|
+
g: 0.0,
|
|
399
|
+
b: 0.0,
|
|
400
|
+
a: 1.0,
|
|
401
|
+
});
|
|
402
|
+
engine.block.setColor(recolor1, 'effect/recolor/toColor', {
|
|
403
|
+
r: 0.0,
|
|
404
|
+
g: 0.0,
|
|
405
|
+
b: 1.0,
|
|
406
|
+
a: 1.0,
|
|
407
|
+
});
|
|
408
|
+
engine.block.appendEffect(block5, recolor1);
|
|
409
|
+
|
|
410
|
+
const recolor2 = engine.block.createEffect('recolor');
|
|
411
|
+
engine.block.setColor(recolor2, 'effect/recolor/fromColor', {
|
|
412
|
+
r: 0.0,
|
|
413
|
+
g: 1.0,
|
|
414
|
+
b: 0.0,
|
|
415
|
+
a: 1.0,
|
|
416
|
+
});
|
|
417
|
+
engine.block.setColor(recolor2, 'effect/recolor/toColor', {
|
|
418
|
+
r: 1.0,
|
|
419
|
+
g: 0.5,
|
|
420
|
+
b: 0.0,
|
|
421
|
+
a: 1.0,
|
|
422
|
+
});
|
|
423
|
+
engine.block.appendEffect(block5, recolor2);
|
|
424
|
+
|
|
425
|
+
// Get all effects on the block
|
|
426
|
+
const effects = engine.block.getEffects(block5);
|
|
427
|
+
// eslint-disable-next-line no-console
|
|
428
|
+
console.log('Number of effects:', effects.length); // 2
|
|
429
|
+
|
|
430
|
+
// Disable the first effect without removing it
|
|
431
|
+
engine.block.setEffectEnabled(effects[0], false);
|
|
432
|
+
|
|
433
|
+
// Check if effect is enabled
|
|
434
|
+
const isEnabled = engine.block.isEffectEnabled(effects[0]);
|
|
435
|
+
// eslint-disable-next-line no-console
|
|
436
|
+
console.log('First effect enabled:', isEnabled); // false
|
|
507
437
|
```
|
|
508
438
|
|
|
509
439
|
Key effect management methods:
|
|
@@ -515,6 +445,36 @@ Key effect management methods:
|
|
|
515
445
|
|
|
516
446
|
Stacking multiple Recolor effects enables complex color transformations, such as replacing multiple colors in a single image or creating variations.
|
|
517
447
|
|
|
448
|
+
## Exporting Results
|
|
449
|
+
|
|
450
|
+
After applying color replacement effects, export the processed image to a file:
|
|
451
|
+
|
|
452
|
+
```typescript highlight=highlight-export
|
|
453
|
+
// Export the result to PNG
|
|
454
|
+
const outputDir = './output';
|
|
455
|
+
if (!existsSync(outputDir)) {
|
|
456
|
+
mkdirSync(outputDir, { recursive: true });
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
const blob = await engine.block.export(page, { mimeType: 'image/png' });
|
|
460
|
+
const buffer = Buffer.from(await blob.arrayBuffer());
|
|
461
|
+
writeFileSync(`${outputDir}/replace-colors-result.png`, buffer);
|
|
462
|
+
|
|
463
|
+
// eslint-disable-next-line no-console
|
|
464
|
+
console.log('✓ Exported result to output/replace-colors-result.png');
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
The export uses `engine.block.export()` to render the page with all effects applied, then writes the result to the file system.
|
|
468
|
+
|
|
469
|
+
## Cleanup
|
|
470
|
+
|
|
471
|
+
Always dispose the engine when processing is complete to free resources:
|
|
472
|
+
|
|
473
|
+
```typescript highlight=highlight-cleanup
|
|
474
|
+
// Always dispose the engine to free resources
|
|
475
|
+
engine.dispose();
|
|
476
|
+
```
|
|
477
|
+
|
|
518
478
|
## Troubleshooting
|
|
519
479
|
|
|
520
480
|
**Colors not matching as expected**: Increase the `colorMatch` tolerance for broader selection, or decrease it for more precise matching. Check that your source color closely matches the actual color in the image.
|
|
@@ -523,13 +483,15 @@ Stacking multiple Recolor effects enables complex color transformations, such as
|
|
|
523
483
|
|
|
524
484
|
**Color spill on Green Screen subjects**: Increase the `spill` value to reduce the green tint that often appears on edges when removing green backgrounds.
|
|
525
485
|
|
|
526
|
-
**Effect not visible**: Verify that the effect is enabled using `isEffectEnabled()` and that it has been appended to the block using `appendEffect()`.
|
|
486
|
+
**Effect not visible in export**: Verify that the effect is enabled using `isEffectEnabled()` and that it has been appended to the block using `appendEffect()`.
|
|
487
|
+
|
|
488
|
+
|
|
527
489
|
|
|
528
490
|
---
|
|
529
491
|
|
|
530
492
|
## More Resources
|
|
531
493
|
|
|
532
|
-
- **[
|
|
494
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
533
495
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
534
|
-
- **[Web Documentation](./
|
|
535
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
496
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
497
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|