有没有办法在Flutter中存储CustomPainter的Path和Paint?

时间:2019-07-28 21:07:14

标签: flutter

我正在使用CustomPainter制作一个屏幕,用户可以用手指或手写笔绘画。到目前为止还不是火箭科学。

画线存储为

List<MapEntry<Path, Paint>>

因为我可以导出此“图形”和.png,但是我想存储“路径”和“绘画”,以便稍后将图形加载回画布中以进一步进行绘制。

我的想法是,我可以将对象转换为一种字节数组,并将它们存储在DB或文件中,但无法解决问题。

我也不能用它制作一个json。

是否可以在Flutter中存储此类对象,还是应该在绘制和重建路径时存储使用过的点?

预先感谢

1 个答案:

答案 0 :(得分:1)

由于当时我还没有找到解决方案,所以我决定自己实现。

我克隆了Painter2 lib并修改了其代码以添加以下功能:

  • 通过单击在屏幕上添加点
  • 为路径添加保存/还原功能,以便重新加载绘画以供以后编辑。

可以在这里找到lib https://github.com/fellow7000/painter2 我还没有对此进行后续处理,因此向原始库提出了池请求。

因此,现在基本上您具有可以读取和写入的MyPath属性。您唯一需要的是以某种方式将其存储在数据库中。我选择将其在需要时来回转换为JSON。

免责声明:因为我已经做了半年多了,所以可能缺少一些细节,但是该库正在运行,因为我仍在项目中使用它。出于安全原因,请下载或克隆它,因为我无法保证,它将永远存在:)