2016-08-15 16 views
-2

私はJPanelに2つの画像(もう1つは下にある)を持っています。目標は、ユーザーがマウスを使用して上部イメージを「スクラッチオフ」し、下部イメージのその部分を露出させることである。Java Swing:画像の一部を消去し、別の画像を下にさらす

Erase part of image on Tkinter canvas, exposing another image underneath PythonではなくJava Swingを除きます。

これは可能ですか?私はあなたがBufferedImage.getSubimageを使うことができると知っていますが、私が知る限り、これは画像を切り抜くためだけに働きます。

+0

レイヤードJPanelsを使用します。例:[Stack Overflow:JPanelで不透明なコンポーネントの上にカスタムのものを描画する](http://stackoverflow.com/questions/11047847/draw-custom-stuff-on-top-of-opaque-components-in- a-jpanel) –

+0

1)より良いヘルプを早く得るには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 2つの画像とマウスがどこに記録されているか)。 2)画像を取得する方法の1つは、[このQ&A](http://stackoverflow.com/q/19209650/418556)に表示されている画像にホットリンクすることです。 –

答えて

3

あなたのイメージは、あなただけのBufferedImageに画像を読み込んで画像をクリアするためのBufferedImageのSetRGBは(...)メソッドを使用することができ、アルファ透明度をサポートしていますと仮定:

BufferedImage image = ImageIO.read(new File(...); 
int transparent = new Color(0, 0, 0, 0).getRGB(); 
image.setRGB(??, ??, transparent); 

だから、あなたが必要になりますMouseListenerを使用してMouseEventを処理して、透明にしたいピクセルの位置を取得します。

+0

パーフェクト!どうもありがとう。 – Joe

関連する問題