我想读取Canvas
的像素数据(使用OpenJFX 12),并对其进行一些检查。
int x = ...;
int y = ...;
Canvas canvas = ...;
WritableImage snapshot = canvas.snapshot(null, null);
PixelReader pixelReader = snapshot.getPixelReader();
Color color = pixelReader.getColor(x, y);
此方法的工作原理是,如果用canvas.getGraphicsContext2D().clearRect(...)
清除了画布,则color
将是0xffffffff
,它是白色的,完全可见,但应该是0x00000000
,例如member initializer list。绘制的图像是正确的,它应该是透明的,因为我看到它后面的项目。
我也在使用TestFX(现在处于可见模式),但我认为这不会影响画布的数据。
那是为什么?也许我误解了clearRect
的作用?