我正在开发绘图应用程序,它也需要填充桶。 关于如何在 Flutter 中执行桶填充的任何想法?
最佳答案
您必须编写自己的算法。我想你可以移植 this one Dart 。
您需要的一个基本知识是如何获取图像像素的颜色:
Color getPixelColor(ByteData rgbaImageData, int imageWidth, int imageHeight, int x, int y) {
assert(x >= 0 && x < imageWidth);
assert(y >= 0 && y < imageHeight);
final byteOffset = x * 4 + y * imageWidth * 4;
final r = rgbaImageData.getUint8(byteOffset);
final g = rgbaImageData.getUint8(byteOffset + 1);
final b = rgbaImageData.getUint8(byteOffset + 2);
final a = rgbaImageData.getUint8(byteOffset + 3);
return Color.fromARGB(a, r, g, b);
}
你可以这样使用它:
Image image = ...;
final rgbaImageData = await image.toByteData(format: ui.ImageByteFormat.rawRgba);
print(getPixelColor(rgbaImageData, image.width, image.height, x, y));
操作它遵循相同的方案 (setUint8
)。
https://stackoverflow.com/questions/52038055/
相关文章:
android - Flutter 项目超过 .dex 方法引用计数限制
dart - 如何创建 "fake" Dart :io File from in-memory by
flutter - 更新 Flutter 后 StaggeredGridView 不滚动
flutter - 访问facebook登录时出现错误如何解决
flutter - 从网络加载图像时如何修复 Listview 滚动卡顿
android - 如何禁用使用 Flutter 1.0 在 Google map 中点击标记时出现
flutter - Flutter 支持虚拟现实还是增强现实?