【问题标题】:Adjusting contrast on camera preview and image widgets flutter调整相机预览的对比度和图像小部件颤动
【发布时间】:2020-10-05 09:58:12
【问题描述】:

我需要显示一个 CameraPreview 小部件和一个图像(单独),并在两者上调整对比度。我一直在研究 ColorFiltered 和 ShaderMask 小部件,但我不确定要使用哪种混合模式,或者它是否有助于更改混合模式。有没有人有任何改变对比度的例子?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    嘿,我建议您使用颜色矩阵来实现所需的对比度。 您可以在 ColoFiltered 小部件中使用以下颜色矩阵:

    class CustomSubFilters extends ColorFilter {
      CustomSubFilters.matrix(List<double> matrix) : super.matrix(matrix);
    
      factory CustomSubFilters.contrast(double c) {
        num t = (1.0 - (1 + c)) / 2.0 * 255;
        return CustomSubFilters.matrix(<double>[
          1 + c,
          0,
          0,
          0,
          t,
          0,
          1 + c,
          0,
          0,
          t,
          0,
          0,
          1 + c,
          0,
          t,
          0,
          0,
          0,
          1,
          0,
        ]);
      }
    }
    

    只需将您的小部件包装在 ColorFiltered 小部件中并使用此颜色矩阵。

    【讨论】:

      【解决方案2】:

      我使用了相机插件,并且包中没有内置功能来设置对比度/亮度,所以我通过 ColorFiltered 小部件将其设置为:

      ColorFiltered(
                  colorFilter: const ColorFilter.mode(
                    Colors.white,
                    BlendMode.softLight,
                    // BlendMode.overlay,
                  ),
                  child: CameraPreview(camController),
                )
      

      它对我有用。我希望,这个解决方案也能帮助你。非常感谢您提出这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-18
        • 2021-08-06
        • 1970-01-01
        • 2021-02-19
        • 1970-01-01
        • 1970-01-01
        • 2013-06-20
        • 2015-06-30
        相关资源
        最近更新 更多