Máscara

Máscaras são usadas para recortar ou moldar elementos. A propriedade maskData pode ser aplicada a imagens, vídeos e outros elementos visuais para controlar sua área visível.

Tipos de Máscara

  • recortar: Recorte retangular simples
  • forma: Máscara baseada em forma (elipse, retângulo, estrela, polígono, etc.)
  • texto: Máscara baseada em texto
  • caminho: Máscara de caminho personalizado

Máscara de Recorte

PropriedadeTipoNecessárioExemploFaixa de ValoresDescrição
typestringtrue-cropO tipo de máscara.
centerXnumbertrue--A posição horizontal do centro da máscara, em pixels.
centerYnumbertrue--A posição vertical do centro da máscara, em pixels.
widthnumbertrue--A largura da máscara, em pixels.
heightnumbertrue--A altura da máscara, em pixels.
inversebooleanfalse--Se deve inverter a máscara (criar um efeito de recorte).
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"
}

Máscara de Forma

PropriedadeTipoNecessárioExemploFaixa de ValoresDescrição
typestringtrue-shapeO tipo de máscara.
shapeTypestringtrue-SHAPE_RECT | SHAPE_ELLIPSE | SHAPE_STAR | SHAPE_POLYGON | SHAPE_PATHO tipo de forma para a máscara.
xnumbertrue--A posição horizontal da máscara, em pixels.
ynumbertrue--A posição vertical da máscara, em pixels.
scaleXnumbertrue--A escala horizontal da máscara.
scaleYnumbertrue--A escala vertical da máscara.
rotationnumbertrue--A rotação da máscara, em radianos.
widthnumberfalse--A largura da máscara, em pixels.
heightnumberfalse--A altura da máscara, em pixels.
fillstringtrue--A cor de preenchimento da máscara, em formato hexadecimal.
viewobjecttrue--As propriedades de transformação de visualização da máscara.
pointNumnumberfalse--Número de pontos para formas de polígono ou estrela.
innerRadiusnumberfalse--Raio interno para formas de estrela (relativo ao raio externo).
outerRadiusnumberfalse--Raio externo para formas de estrela.
cornerRadiusnumberfalse--Raio dos cantos para formas de retângulo arredondado.
inversebooleanfalse--Se deve inverter a máscara (criar um efeito de recorte).
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"
}

Máscara de Texto

Use texto como uma máscara para recortar um elemento em formas de texto.

PropriedadeTipoNecessárioExemploFaixa de ValoresDescrição
typestringtrue-textO tipo de máscara.
xnumbertrue--A posição horizontal da máscara de texto, em pixels.
ynumbertrue--A posição vertical da máscara de texto, em pixels.
rotationnumbertrue--A rotação da máscara de texto, em radianos.
scalenumbertrue--A escala da máscara de texto.
fontSizenumbertrue--O tamanho da fonte do texto, em pixels.
fontFamilystringtrue--O nome da família da fonte.
textstringtrue--O conteúdo do texto.
isBoldbooleantrue--Se o texto é negrito.
isItalicbooleantrue--Se o texto é itálico.
letterSpacingnumbertrue--Espaçamento entre letras em pixels.
inversebooleanfalse--Se deve inverter a máscara (criar um efeito de recorte).

Máscara de Caminho

Use um caminho vetorial personalizado (curvas de Bezier) como uma máscara.

PropriedadeTipoNecessárioExemploFaixa de ValoresDescrição
typestringtrue-pathO tipo de máscara.
cnumbertrue--Se o caminho está fechado (1) ou aberto (0). Caminhos fechados podem ser preenchidos.
varraytrue--Array de pontos de vértice do caminho. Cada ponto é um array [x, y].
iarraytrue--Array de pontos de controle de tangente de entrada para cada vértice.
oarraytrue--Array de pontos de controle de tangente de saída para cada vértice.
inversebooleanfalse--Se deve inverter a máscara (criar um efeito de recorte).

Notas Importantes

  • Sistema de Coordenadas: Todas as posições (x, y, centerX, centerY) estão em pixels em relação ao tamanho original do elemento.
  • Unidades de Rotação: Os valores de rotação estão em radianos, não em graus. Para converter graus em radianos: radians = degrees * Math.PI / 180.
  • Máscaras Inversas: Quando inverse: true, a máscara cria um efeito de recorte - o elemento é visível em todos os lugares, exceto na área mascarada.
  • Máscara vs Região:
    • maskData recorta o próprio elemento (clipping a nível de nó)
    • filterAgent.region limita onde um efeito de filtro é aplicado (máscara a nível de efeito)
  • Desempenho: Máscaras complexas (especialmente máscaras de caminho com muitos vértices) podem impactar o desempenho de renderização.