dart - 桶填充 flutter

我正在开发绘图应用程序,它也需要填充桶。 关于如何在 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 滚动卡顿

dart - Flutter 自定义范围 slider

android - 如何禁用使用 Flutter 1.0 在 Google map 中点击标记时出现

flutter - Flutter 支持虚拟现实还是增强现实?

dart - Flutter 不会使用不同的参数重建相同的小部件

text - 如何使用 Flutter 编写带有要点的段落?