flutter - 如何获得抖动中的平均颜色?

标签 flutter dart colors average

在flutter中,有调色板生成器软件包,但是这些软件包对于获得颜色平均值并不准确。

我想在flutter(dart)中实现色彩平均功能
我找到了一些获取平均颜色的代码。但我想转换为Flutter代码的dart代码。
我该如何做功能?
我想用Fileimage获得平均颜色
谢谢。

---------------------------这是我找到的代码。我想转换为dart( flutter )代码---------------------

Bitmap bitmap = someFunctionReturningABitmap();
long redBucket = 0;
long greenBucket = 0;
long blueBucket = 0;
long pixelCount = 0;

for (int y = 0; y < bitmap.getHeight(); y++)
{
    for (int x = 0; x < bitmap.getWidth(); x++)
    {
        Color c = bitmap.getPixel(x, y);

        pixelCount++;
        redBucket += Color.red(c);
        greenBucket += Color.green(c);
        blueBucket += Color.blue(c);
        // does alpha matter?
    }
}

Color averageColor = Color.rgb(redBucket / pixelCount,
                                greenBucket / pixelCount,
                                blueBucket / pixelCount);

最佳答案

该代码几乎是相同的,在Dart中它将变成这样:

import 'package:image/image.dart' as img;

img.Image bitmap =
      img.decodeImage(new File('assets/images/keyboard.jpg').readAsBytesSync());

  int redBucket = 0;
  int greenBucket = 0;
  int blueBucket = 0;
  int pixelCount = 0;

  for (int y = 0; y < bitmap.height; y++) {
    for (int x = 0; x < bitmap.width; x++) {
      int c = bitmap.getPixel(x, y);

      pixelCount++;
      redBucket += img.getRed(c);
      greenBucket += img.getGreen(c);
      blueBucket += img.getBlue(c);
    }
  }

  Color averageColor = Color.fromRGBO(redBucket ~/ pixelCount,
      greenBucket ~/ pixelCount, blueBucket ~/ pixelCount, 1);

我希望这有帮助。

关于flutter - 如何获得抖动中的平均颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61216815/

相关文章:

firebase - 注销应用程序时调用.setPersistenceEnabled(false),不起作用

dart - BLoC状态管理模式( flutter )

dart - 在 flutter 上切换选项卡时不会重新渲染流

Flutter-如何从 FlutterSlider (flutter_xlider) 中获取 currentValue

function - 如何使用命令行参数来控制打印多色文本的批处理程序?

javascript - 为什么函数在 Canvas 中返回错误的颜色?

flutter - 使用相机包拍照后图像未保存在移动设备上

flutter - graphql_flutter 返回 LazyCacheMap,built_value deserializeWith JSON String,如何让它们协同工作

dart - 尝试创建新应用程序时找不到 stagehand 命令

javascript - Canvas - floodfill 在边缘留下白色像素