面具

面具用於裁剪或塑造元素。maskData屬性可以應用於圖像、視頻和其他視覺元素,以控制它們的可見區域。

面具類型

  • 裁剪:簡單的矩形裁剪
  • 形狀:基於形狀的面具(橢圓形、矩形、星形、多邊形等)
  • 文本:基於文本的面具
  • 路徑:自定義路徑面具

裁剪面具

屬性類型必要範例值範圍描述
typestringtrue-crop面具的類型。
centerXnumbertrue--面具中心的水平位置,以像素為單位。
centerYnumbertrue--面具中心的垂直位置,以像素為單位。
widthnumbertrue--面具的寬度,以像素為單位。
heightnumbertrue--面具的高度,以像素為單位。
inversebooleanfalse--是否反轉面具(創建切割效果)。
imageElement.json
{
  "id": "0a2db861-19c0-47d0-9e71-5a56a357e2e9",
  "type": "Image",
  "start": 0,
  "duration": 5,
  "trackIndex": 0,
  "x": -58.59302855661144,
  "y": 48.394393104046685,
  "blendMode": "normal",
  "anchorX": 1051.1350332909515,
  "anchorY": 2519.1996978825114,
  "rotation": 0,
  "maskData": {
      "type": "crop",
      "centerX": 1051.1350332909515,
      "centerY": 2519.1996978825114,
      "width": 2121.862754282655,
      "height": 2949.902587890625
  },
  "scaleX": 0.23356401384083045,
  "scaleY": 0.23356401384083045,
  "alpha": 1,
  "skewX": 0,
  "skewY": 0,
  "keyframes": [],
  "externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
  "ext": "jpeg"
}

形狀面具

屬性類型必要範例值範圍描述
typestringtrue-shape面具的類型。
shapeTypestringtrue-SHAPE_RECT | SHAPE_ELLIPSE | SHAPE_STAR | SHAPE_POLYGON | SHAPE_PATH面具的形狀類型。
xnumbertrue--面具的水平位置,以像素為單位。
ynumbertrue--面具的垂直位置,以像素為單位。
scaleXnumbertrue--面具的水平縮放。
scaleYnumbertrue--面具的垂直縮放。
rotationnumbertrue--面具的旋轉,以弧度為單位。
widthnumberfalse--面具的寬度,以像素為單位。
heightnumberfalse--面具的高度,以像素為單位。
fillstringtrue--面具的填充顏色,以十六進制格式表示。
viewobjecttrue--面具的視圖變換屬性。
pointNumnumberfalse--多邊形或星形的點數。
innerRadiusnumberfalse--星形的內半徑(相對於外半徑)。
outerRadiusnumberfalse--星形的外半徑。
cornerRadiusnumberfalse--圓角矩形形狀的圓角半徑。
inversebooleanfalse--是否反轉面具(創建切割效果)。
imageElement.json
{
  "id": "0a2db861-19c0-47d0-9e71-5a56a357e2e9",
  "type": "Image",
  "start": 0,
  "duration": 5,
  "trackIndex": 0,
  "x": -58.59302855661144,
  "y": 48.394393104046685,
  "blendMode": "normal",
  "anchorX": 1051.1350332909515,
  "anchorY": 2519.1996978825114,
  "rotation": 0,
  "maskData": {
      "type": "shape",
      "shapeType": "SHAPE_ELLIPSE",
      "x": 1935.8609161703698,
      "y": 2120.7135441063306,
      "scaleX": 1,
      "scaleY": 1,
      "rotation": 0,
      "width": 2604,
      "height": 2604,
      "fill": "#ffffff",
      "view": {
          "scaleX": 1,
          "scaleY": 1,
          "x": 0,
          "y": 0,
          "width": 2604,
          "height": 2604,
          "rotation": 0,
          "anchorX": 0,
          "anchorY": 0
      }
  },
  "scaleX": 0.23356401384083045,
  "scaleY": 0.23356401384083045,
  "alpha": 1,
  "skewX": 0,
  "skewY": 0,
  "keyframes": [],
  "externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
  "ext": "jpeg"
}

文本面具

使用文本作為面具,將元素裁剪成文本形狀。

屬性類型必要範例值範圍描述
typestringtrue-text面具的類型。
xnumbertrue--文本面具的水平位置,以像素為單位。
ynumbertrue--文本面具的垂直位置,以像素為單位。
rotationnumbertrue--文本面具的旋轉,以弧度為單位。
scalenumbertrue--文本面具的縮放。
fontSizenumbertrue--文本的字體大小,以像素為單位。
fontFamilystringtrue--字體系列名稱。
textstringtrue--文本內容。
isBoldbooleantrue--文本是否加粗。
isItalicbooleantrue--文本是否斜體。
letterSpacingnumbertrue--字母間距,以像素為單位。
inversebooleanfalse--是否反轉面具(創建切割效果)。

路徑面具

使用自定義向量路徑(貝塞爾曲線)作為面具。

屬性類型必要範例值範圍描述
typestringtrue-path面具的類型。
cnumbertrue--路徑是封閉(1)還是開放(0)。封閉的路徑可以填充。
varraytrue--路徑頂點點的數組。每個點都是一個[x, y]數組。
iarraytrue--每個頂點的進入切線控制點的數組。
oarraytrue--每個頂點的離開切線控制點的數組。
inversebooleanfalse--是否反轉面具(創建切割效果)。

重要注意事項

  • 坐標系:所有位置(x、y、centerX、centerY)都是相對於元素原始大小的像素。
  • 旋轉單位:旋轉值以弧度為單位,而不是度數。將度數轉換為弧度的公式為:radians = degrees * Math.PI / 180
  • 反向面具:當inverse: true時,面具創建切割效果——元素在被面具遮蓋的區域之外可見。
  • 面具與區域
    • maskData裁剪的是元素本身(節點級裁剪)
    • filterAgent.region限制了濾鏡效果的應用區域(效果級面具)
  • 性能:複雜的面具(特別是具有許多頂點的路徑面具)可能會影響渲染性能。