在Flutter中,有调色板生成器软件包,但是这些软件包对于获得颜色平均值并不准确。
我想在颤动中实现色彩平均功能(飞镖) 我找到了一些获取平均颜色的代码。但我想转换为Flutter代码的dart代码。 我该如何做功能? 我想用Fileimage获得平均颜色 谢谢。
---------------------------这是我找到的代码。我想转换为dart(颤振)代码---------------------
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);
答案 0 :(得分:1)
代码几乎相同,在飞镖中它将变成这样:
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);
我希望这会有所帮助。