Máscara

Las máscaras se utilizan para recortar o dar forma a elementos. La propiedad maskData se puede aplicar a imágenes, videos y otros elementos visuales para controlar su área visible.

Tipos de Máscaras

  • recortar: Recorte rectangular simple
  • forma: Máscara basada en formas (elipse, rectángulo, estrella, polígono, etc.)
  • texto: Máscara basada en texto
  • ruta: Máscara de ruta personalizada

Máscara de Recorte

PropTipoRequeridoEjemploRango de ValoresDescripción
typestringtrue-cropEl tipo de máscara.
centerXnumbertrue--La posición horizontal del centro de la máscara, en píxeles.
centerYnumbertrue--La posición vertical del centro de la máscara, en píxeles.
widthnumbertrue--El ancho de la máscara, en píxeles.
heightnumbertrue--La altura de la máscara, en píxeles.
inversebooleanfalse--Si se debe invertir la máscara (crear un efecto 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

PropTipoRequeridoEjemploRango de ValoresDescripción
typestringtrue-shapeEl tipo de máscara.
shapeTypestringtrue-SHAPE_RECT | SHAPE_ELLIPSE | SHAPE_STAR | SHAPE_POLYGON | SHAPE_PATHEl tipo de forma para la máscara.
xnumbertrue--La posición horizontal de la máscara, en píxeles.
ynumbertrue--La posición vertical de la máscara, en píxeles.
scaleXnumbertrue--La escala horizontal de la máscara.
scaleYnumbertrue--La escala vertical de la máscara.
rotationnumbertrue--La rotación de la máscara, en radianes.
widthnumberfalse--El ancho de la máscara, en píxeles.
heightnumberfalse--La altura de la máscara, en píxeles.
fillstringtrue--El color de relleno de la máscara, en formato hexadecimal.
viewobjecttrue--Las propiedades de transformación de vista de la máscara.
pointNumnumberfalse--Número de puntos para formas de polígono o estrella.
innerRadiusnumberfalse--Radio interno para formas de estrella (relativo al radio externo).
outerRadiusnumberfalse--Radio externo para formas de estrella.
cornerRadiusnumberfalse--Radio de esquina para formas de rectángulo redondeado.
inversebooleanfalse--Si se debe invertir la máscara (crear un efecto 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

Utiliza texto como una máscara para recortar un elemento en formas de texto.

PropTipoRequeridoEjemploRango de ValoresDescripción
typestringtrue-textEl tipo de máscara.
xnumbertrue--La posición horizontal de la máscara de texto, en píxeles.
ynumbertrue--La posición vertical de la máscara de texto, en píxeles.
rotationnumbertrue--La rotación de la máscara de texto, en radianes.
scalenumbertrue--La escala de la máscara de texto.
fontSizenumbertrue--El tamaño de fuente del texto, en píxeles.
fontFamilystringtrue--El nombre de la familia de fuentes.
textstringtrue--El contenido del texto.
isBoldbooleantrue--Si el texto es negrita.
isItalicbooleantrue--Si el texto es cursiva.
letterSpacingnumbertrue--Espaciado entre letras en píxeles.
inversebooleanfalse--Si se debe invertir la máscara (crear un efecto de recorte).

Máscara de Ruta

Utiliza una ruta vectorial personalizada (curvas de Bezier) como una máscara.

PropTipoRequeridoEjemploRango de ValoresDescripción
typestringtrue-pathEl tipo de máscara.
cnumbertrue--Si la ruta está cerrada (1) o abierta (0). Las rutas cerradas pueden ser rellenadas.
varraytrue--Array de puntos de vértice de la ruta. Cada punto es un array [x, y].
iarraytrue--Array de puntos de control de tangente entrante para cada vértice.
oarraytrue--Array de puntos de control de tangente saliente para cada vértice.
inversebooleanfalse--Si se debe invertir la máscara (crear un efecto de recorte).

Notas Importantes

  • Sistema de Coordenadas: Todas las posiciones (x, y, centerX, centerY) están en píxeles en relación con el tamaño original del elemento.
  • Unidades de Rotación: Los valores de rotación están en radianes, no en grados. Para convertir grados a radianes: radianes = grados * Math.PI / 180.
  • Máscaras Inversas: Cuando inverse: true, la máscara crea un efecto de recorte: el elemento es visible en todas partes excepto en el área enmascarada.
  • Máscara vs Región:
    • maskData recorta el elemento en sí (recorte a nivel de nodo)
    • filterAgent.region limita dónde se aplica un efecto de filtro (enmascaramiento a nivel de efecto)
  • Rendimiento: Las máscaras complejas (especialmente las máscaras de ruta con muchos vértices) pueden afectar el rendimiento de renderizado.