【发布时间】:2013-01-25 04:59:42
【问题描述】:
我目前正在使用 Java Applets 制作类似绘画的程序。我想通过使用递归和检查给定点周围的每个像素来模拟存储桶工具,但是我无法获取给定像素的 RGB 值。
有没有办法做一些事情,比如
public void paint(Graphics g) {
g.getPixelAt(X, Y);
}
还是什么?
【问题讨论】:
我目前正在使用 Java Applets 制作类似绘画的程序。我想通过使用递归和检查给定点周围的每个像素来模拟存储桶工具,但是我无法获取给定像素的 RGB 值。
有没有办法做一些事情,比如
public void paint(Graphics g) {
g.getPixelAt(X, Y);
}
还是什么?
【问题讨论】:
Graphics 是虚拟概念,不支持您尝试做的事情
您需要做的是在可以与之交互的表面上进行绘制,例如BufferedImage。
基本的想法是为这个缓冲图像绘制所有效果,并使用Graphihcs#drawImage 将图像实际渲染到屏幕上。
从那里您可以使用我们的BufferedImage#getRaster,它将为您提供具有get/setPixel 方法的WritableRaster 对象。
【讨论】:
您可以使用 Applet.getLocationOnScreen() 和 java.awt.Robot.createScreenCapture() 来查找和捕获您想要的小程序部分。
This question 提出了类似的问题。
【讨论】: