removalColor method

Future<Image?> removalColor({
  1. Color color = const Color(0xffffffff),
  2. double tolerance = 1,
})

Image decolorization.

Implementation

Future<Image?> removalColor({
  Color color = const Color(0xffffffff),
  double tolerance = 1,
}) async {
  Completer<Image?> completer = Completer();
  final ByteData? byteData =
      await toByteData(format: ImageByteFormat.rawRgba);
  if (byteData.isNoNull) {
    final Uint32List uint32list = byteData!.buffer.asUint32List();
    uint32list.iFor((index, element) {
      final bool isDiff = element.uInt32toColor
          .euclideanDistanceColorDifference(color, tolerance: tolerance);
      if (!isDiff) uint32list[index] = 0;
    });
    decodeImageFromPixels(
      uint32list.buffer.asUint8List(),
      width,
      height,
      PixelFormat.rgba8888,
      (Image result) => completer.complete(result),
    );
  }
  return completer.future;
}