Add Grayed Out Effect to an Image in Flutter
Adding a grayed-out effect to an image is a common editing technique that can be used to create a variety of different effects. In general, when adding a grayed-out effect to an image, you will want to use a lower opacity for the grayscale layer so that some of the original colors of the image still shine through.
This effect is often used to create a disabled state of a widget.
ColorFiltered( colorFilter: const ColorFilter.mode( Colors.grey, BlendMode.saturation, ), child: FadeInImage.assetNetwork( image: "https://cdn.pixabay.com/photo/2022/04/06/20/29/airplane-7116299_960_720.jpg", placeholder: "https://cdn.pixabay.com/photo/2022/04/06/20/29/airplane-7116299_960_720.jpg", ), )
Container( width: 300, foregroundDecoration: const BoxDecoration( color: Colors.grey, backgroundBlendMode: BlendMode.saturation, ), child: FadeInImage.assetNetwork( image: "https://cdn.pixabay.com/photo/2022/04/06/20/29/airplane-7116299_960_720.jpg", placeholder: "https://cdn.pixabay.com/photo/2022/04/06/20/29/airplane-7116299_960_720.jpg", ), )
The following snippet works for transparent image. It was introduced by dnfield.
class GrayOut extends StatelessWidget { final Widget? child; const GrayOut({Key? key, required this.child}) : super(key: key); @override Widget build(BuildContext context) { return ColorFiltered( colorFilter: const ColorFilter.matrix(<double>[ 0.2126, 0.7152, 0.0722, 0, 0, 0.2126, 0.7152, 0.0722, 0, 0, 0.2126, 0.7152, 0.0722, 0, 0, 0, 0, 0, 1, 0, ]), child: child!, ); } }