【问题标题】:How to do clone stamp in flutter canvas?如何在颤动的画布中克隆邮票?
【发布时间】:2020-04-27 08:32:29
【问题描述】:

是否可以从其他位置复制形状/绘画并将其粘贴到其他位置?它就像 Photoshop 中的克隆图章工具。

我可以画出如下的形状

    //drawing eyebrow frame
    Path leftEyePath = Path();
    leftEyePath.moveTo(leftEyebrow[0].getX(),leftEyebrow[0].getY()-20);//-20 to move upward to skin surface
    for(int i=1;i<leftEyebrow.length;i++){
      leftEyePath.lineTo(leftEyebrow[i].getX(),leftEyebrow[i].getY()-20);
    }
    canvas.drawPath(leftEyePath,_myPainter);

输出如下

如何将蓝色形状的颜料复制到红色形状中以去除眉毛?

【问题讨论】:

  • 这是可能的..即使我很好奇应该有人回答
  • 我曾经玩过 libgdx ,最简单的解决办法可能是玩混合模式,但是在 Flutter 中很难找到学习资料...
  • 您可以尝试剪切路径并在画布上绘制图像,您将得到的结果正是蓝色路径内的内容..你明白我说的了吗?..有可能!
  • 然后使用 path.getBounds() 获取矩形,并保存图层..它将是矩形但路径外的像素将是透明的

标签: flutter canvas


【解决方案1】:

这可以通过 canvas.clipPath(path) 并更改图像位置以在其他位置绘制图像来完成。

canvas.save();
canvas.clipPath(leftEyePath);
paintImage(
   canvas: canvas, 
   rect: Rect.fromLTWH(0,25, size.width, size.height),
   image: image
);
canvas.restore();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 2018-03-05
    • 2017-08-19
    • 2020-04-23
    • 2017-10-11
    • 2018-11-20
    • 1970-01-01
    相关资源
    最近更新 更多