Saltar al contenido principal

Selección automática del modo de mosaico (tile mode) predeterminado para ImageFilter.blur.

Si no se especificó un modo de mosaico (tile mode) en el constructor, ImageFilter.blur seleccionará uno según el contexto de renderizado.

Resumen

#

El modo de mosaico (tile mode) predeterminado de ui.ImageFilter.blur ahora es seleccionado automáticamente por el motor de renderizado (backend). Anteriormente se usaba TileMode.clamp a menos que se especificara un modo de mosaico diferente. Ahora, el valor predeterminado es null y especifica la selección automática a menos que se indique un modo de mosaico específico.

Contexto

#

El modo de mosaico (tile mode) de ImageFilter.blur especifica qué sucede con los píxeles de los bordes para el filtro aplicado. Hay cuatro opciones:

  • TileMode.clamp (el valor predeterminado anterior)
  • Tilemode.repeated
  • TileMode.mirror
  • TileMode.decal

Anteriormente, si no se especificaba el comportamiento, ImageFilter utilizaba el modo clamp por defecto. Esto a veces sorprendía a los desarrolladores, ya que no siempre coincidía con sus expectativas.

A partir de este cambio, el filtro selecciona automáticamente los siguientes modos de mosaico (tile modes) según el contexto:

  • decal con capas de guardado (save layers) y cuando se aplica a dibujos de formas individuales (como con drawRect y drawPath).
  • mirror con filtros de fondo (backdrop filters).
  • clamp para drawImage.

Guía de migración

#

Solo los filtros de desenfoque de imagen que no especifican un modo de mosaico explícito se ven afectados por este cambio.

Creemos que los nuevos valores predeterminados son generalmente mejores y recomendamos eliminar cualquier modo de mosaico de desenfoque especificado.

Código antes de la migración:

dart
final filter = ui.ImageFilter.blur(sigmaX: 4, sigmaY: 4, tileMode: TileMode.decal);

Código después de la migración:

dart
final filter = ui.ImageFilter.blur(sigmaX: 4, sigmaY: 4);

Timeline

#

Llegó en la versión: 3.28.0-0.1.pre
En la versión estable: 3.29

Referencias

#

Documentación de la API:

Issues relevantes:

PRs relevantes: