

画像の上にお絵かきがしたいと思っています
今の段階では、書くことはできます。
しかし、書いたものを消すことができません・・・。
他のペイントのサンプルを見ましたが、消しゴム機能はただカラーを背景色と同色で上塗り(?)してるだけでした。
僕が求めているものとしては、書いてある物を消して背景の画像が映るというようにしたいんです!!
ペイントパネルのソースの一部です
自分なりに必要だと思うところを抜き出してみました
//鉛筆(黒)
public void pat1(Graphics2D g2d)
{
rc = gc = bc = 0;
count = 255;
g2d.setStroke( new BasicStroke( 3.0F ) );
g2d.setPaint(new Color(rc, gc, bc, count));
g2d.fillOval(currentPoint.x, currentPoint.y, 10, 10);
g2d.dispose();
}
//消しゴム(白)
public void pat2(Graphics2D g2d)
{
rc = gc = bc = 254;
count = 0;
g2d.setStroke( new BasicStroke( 3.0F ) );
g2d.setPaint(new Color(rc, gc, bc, count));
g2d.fillOval(currentPoint.x, currentPoint.y, 10, 10);
g2d.dispose();
}
//リスナークラスの定義
class MoveLis extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent e)
{
Point p = e.getPoint();
if (offImage == null) {
// ここは注意が必要 ⇒ BufferedImage.TYPE_INT_ARGB
// BufferedImage.TYPE_INT_RGBを使うと下のレイヤーの画像が塗り消されてしまいます
// アルファチャネルも追加しておく
offImage = new BufferedImage(getWidth(), getHeight(),
BufferedImage.TYPE_INT_ARGB);
}
Graphics2D g2d = (Graphics2D) offImage.createGraphics();
switch(graPattern){
case 1:pat1(g2d);
break;
case 2:pat2(g2d);
break;
}
repaint();
//座標取得
currentPoint = e.getPoint();
}
}
public void paintComponent( Graphics g ) {
super.paintComponent( g );
if ( offImage != null ) {
g.drawImage( offImage, 0, 0, this );
}
}
回答よろしくお願いします
A 回答 (1件)
- 最新から表示
- 回答順に表示
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- 工学 制御工学の問題について 1 2022/10/22 17:42
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- 工学 制御工学の問題について 1 2022/10/22 11:06
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語 3 2022/11/09 13:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jqueryスライダーを2段でスライ...
-
ワードプレスで画像を何枚か横...
-
UWSCの画像認識と条件分岐につ...
-
マウスが重なると画像を変更 ...
-
背景画像の繰り返しについて
-
複数枚画像の合成
-
HPの画像の位置について
-
画像のビット数を変更する方法
-
画像の存在チェック
-
同じ画像を複数回表示させる
-
画像をフーリエ変換するソース...
-
レンタルチャットを借りたんで...
-
決められた4つの座標をランダム...
-
画像のデザイン
-
【EXCEL VBA】ダブルクリックで...
-
画像の位置の検索
-
ヒストグラム類似度による画像...
-
UWSC 画像認識で条件分岐
-
uwcs のマクロで画像認識をして...
-
画像の上でペイント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
背景画像の繰り返しについて
-
EXCEL VBA 複数のImageコントロ...
-
【EXCEL VBA】ダブルクリックで...
-
uwcs のマクロで画像認識をして...
-
vb.net 画像の透過について
-
UWSCでループ処理がうまくいき...
-
UWSCの画像認識と条件分岐につ...
-
Excel ユーザーフォームで表示...
-
「using Windows」でエラーが出る
-
UWSC 画像判定と条件分岐について
-
uwscの画像認識に失敗します。
-
画像のビット数を変更する方法
-
jqueryスライダーを2段でスライ...
-
画像処理したBitmapをピクチャ...
-
UWSCの色判定
-
UWSCについて
-
スマホでサイトの画像を長押し→...
-
VBAのユーザーフォームのイメー...
-
gif 画像上の ボタンに リン...
-
画像のピクセルデータの取得
おすすめ情報