Transformar assets al momento de la compilación (build time)
Cómo configurar la transformación automática de imágenes (y otros assets) en tu app de Flutter.
Puedes configurar tu proyecto para transformar automáticamente los assets al momento de la compilación (build time) usando paquetes de Dart compatibles.
Especificar transformaciones de assets
#En el archivo pubspec.yaml, enumera los assets que se van a transformar y el paquete
transformador asociado.
flutter:
assets:
- path: assets/logo.svg
transformers:
- package: vector_graphics_compiler
Con esta configuración, assets/logo.svg es transformado por el paquete
vector_graphics_compiler
a medida que se copia a la salida del build. Este
paquete precompila archivos SVG en un archivo binario optimizado que se puede
mostrar usando el paquete vector_graphics, de esta manera:
import 'package:vector_graphics/vector_graphics.dart';
const Widget logo = VectorGraphic(loader: AssetBytesLoader('assets/logo.svg'));
Pasar argumentos a los transformadores de assets
#Para pasar una cadena de argumentos a un transformador de assets, especifícala también en el pubspec:
flutter:
assets:
- path: assets/logo.svg
transformers:
- package: vector_graphics_compiler
args: ['--tessellate', '--font-size=14']
Encadenar transformadores de assets
#Los transformadores de assets se pueden encadenar y se aplican en el orden en que están declarados. Considera el siguiente ejemplo usando paquetes imaginarios:
flutter:
assets:
- path: assets/bird.png
transformers:
- package: grayscale_filter
- package: png_optimizer
Aquí, bird.png es transformado por el paquete grayscale_filter.
La salida se transforma luego por el paquete png_optimizer antes de ser
empaquetada en la app construida.
Escribir paquetes de transformadores de assets
#Un transformador de assets es una aplicación de línea de comandos de Dart
que se invoca con
dart run con al menos dos argumentos: --input, que contiene la ruta al
archivo a transformar y --output, que es la ubicación donde el
código del transformador debe escribir su salida.
Si el transformador finaliza con un código de salida distinto de cero, la compilación de la aplicación
falla con un mensaje de error que explica que falló la transformación del asset.
Cualquier cosa escrita en el flujo stderr
del proceso por el transformador se
incluye en el mensaje de error.
Durante la invocación del transformador, la variable de entorno FLUTTER_BUILD_MODE
se establecerá con el nombre de la CLI del modo de compilación utilizado.
Por ejemplo, si ejecutas tu app con flutter run -d macos --release, entonces
FLUTTER_BUILD_MODE se establecerá en release.
Muestra (Sample)
#Para ver un proyecto de ejemplo de Flutter que usa transformación de assets e incluye un paquete de Dart personalizado que se utiliza como transformador, consulta el proyecto asset_transformers en el repositorio de ejemplos de Flutter.
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-11. Ver código fuente oreportar un problema.