使用用户输入使图像的一部分模糊[Flutter]

时间:2018-09-27 13:47:50

标签: flutter

所以我有一个需要模糊处理的图像,但仅在用户拖动手指的位置。

我有一个使用以下方法绘制的图像:

final UI.Rect rect = UI.Offset.zero & size;
final Size imageSize =
    Size(_image.width.toDouble(), _image.height.toDouble());
FittedSizes sizes = applyBoxFit(BoxFit.contain, imageSize, size);
final Rect inputSubrect =
    Alignment.center.inscribe(sizes.source, Offset.zero & imageSize);
final Rect outputSubrect =
    Alignment.center.inscribe(sizes.destination, rect);

canvas.drawImageRect(_image, inputSubrect, outputSubrect, Paint());

以及使用以下效果的模糊效果:

canvas.drawRect(Rect.fromPoints(_blurStart, _points[i + 1].offset),
            blurPaintSettings);

其中_blurStart是第一个接触点,_points [i + 1]是最后一个接触点。

模糊涂料是这样的:

  Paint blurPaintSettings = new Paint()
..style = PaintingStyle.fill
..maskFilter = MaskFilter.blur(BlurStyle.normal, 3.0);

但是此刻我已经明白了: Black spots

我已经尝试使用:

 canvas.saveLayer(Rect.fromPoints(_blurStart, _points[i + 1].offset),
        blurPaintSettings)

但是什么也没显示

0 个答案:

没有答案