FLUTTER ShaderMask with ImageShader

preview_player
Показать описание
How to create ImageShader in Flutter? Flutter ShaderMask is a widget that applies a mask generated by a Shader to its child. ImageShader is shader that tiles an image.

#Flutter #ShaderMask #ImageShader
Рекомендации по теме
Комментарии
Автор

How can i set image position for this

Or set image center

mohammadjavadbahiraei
Автор

Is not working, getting error on "snapshot.data" -> The argument type 'Object?' can't be assigned to the parameter type 'Image'.

Code:
Future<ui.Image> loadImage(String asset) async {
ByteData data = rootBundle.load(asset) as ByteData;
ui.Codec codec = await
ui.FrameInfo fi = await codec.getNextFrame();
return fi.image;
}

class ImageMask extends StatelessWidget {
final String image;
final Widget widget;
const ImageMask({required this.image, required this.widget});

@override
Widget build(BuildContext context) {
return FutureBuilder(
future: loadImage(this.image),
builder: (context, snapshot) {
if (snapshot.hasData)
return ShaderMask(
shaderCallback: (_) {
return ImageShader(snapshot.data, TileMode.mirror,
TileMode.mirror, Matrix4.identity().storage);
},
child: this.widget);
return Container();
});
}
}

iagobeuller