如何在颤动中创建颜色矩阵?

时间:2020-07-22 21:53:33

标签: flutter

我正在寻找使用ColorFiltered小部件来应用颜色饱和度矩阵,但不知道如何制作矩阵的方法。

1 个答案:

答案 0 :(得分:0)

就我而言,我通过以下方式解决了该问题:

class CustomSubFilters extends ColorFilter {
  CustomSubFilters.matrix(List<double> matrix) : super.matrix(matrix);

  ///defaults to unity matrix when s = 0;
  factory CustomSubFilters.saturate(double sat) {
    num x = 1 + sat;
    num lumR = 0.3086;
    num lumG = 0.6094;
    num lumB = 0.0820;

return CustomSubFilters.matrix(<double>[
  lumR * (1 - x) + x,
  lumG * (1 - x),
  lumB * (1 - x),
  0,
  0,
  lumR * (1 - x),
  lumG * (1 - x) + x,
  lumB * (1 - x),
  0,
  0,
  lumR * (1 - x),
  lumG * (1 - x),
  lumB * (1 - x) + x,
  0,
  0,
  0,
  0,
  0,
  1,
  0,
]);

}

当然,您可以灵活地实现该实现,只是不要忘记扩展ColorFilter类。