答案 0 :(得分:4)
您将必须编写自己的算法。我认为您可以将this one移植到飞镖上。
您需要的一个基本条件是如何获取图像像素的颜色:
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
)进行操作。