現在、Java アプレットを使用してペイントのようなプログラムを作成しています。再帰を使用して特定のポイントの周囲の各ピクセルをチェックすることでバケット ツールをシミュレートしたいのですが、特定のピクセルで RGB 値を取得するのに問題があります。
のようなことをする方法はありますか
public void paint(Graphics g) {
g.getPixelAt(X, Y);
}
か何か?
Graphics
仮想的な概念であり、あなたがやろうとしていることをサポートしていません
あなたがする必要があるのは、あなたが相互作用できる表面にペイントすることですBufferedImage
.
基本的な考え方は、すべての効果をこのバッファリングされた画像にペイントし、 を使用Graphihcs#drawImage
して実際に画像を画面にレンダリングすることです。
そこから、メソッドを持つオブジェクトをBufferedImage#getRaster
提供することができます。WritableRaster
get/setPixel
Applet.getLocationOnScreen() と java.awt.Robot.createScreenCapture() を使用して、必要なアプレットの部分を見つけてキャプチャできます。
この質問は同様の問題を引き起こします。