画像の上にお絵かきがしたいと思っています
今の段階では、書くことはできます。
しかし、書いたものを消すことができません・・・。
他のペイントのサンプルを見ましたが、消しゴム機能はただカラーを背景色と同色で上塗り(?)してるだけでした。
僕が求めているものとしては、書いてある物を消して背景の画像が映るというようにしたいんです!!
ペイントパネルのソースの一部です
自分なりに必要だと思うところを抜き出してみました
//鉛筆(黒)
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ランキング
-
こんなことてしますか??
-
MATLABのDICOM画像表示
-
UWSC「画像が無い場合」
-
「using Windows」でエラーが出る
-
背景画像の繰り返しについて
-
vb.net 画像の透過について
-
C# Excelのsheetに表示された...
-
Pythonでgif画像が上手く作れない
-
画像処理したBitmapをピクチャ...
-
【WPF】画像の切り替え
-
ImageMagickでgif画像の一部が...
-
PowerPoint VBA で画像の鮮明度...
-
8bit(256色)グレースケール画...
-
VBAのユーザーフォームのイメー...
-
Excelで画像クリックのアテンシ...
-
画像をループさせるうまい方法...
-
UWSC 画像判定と条件分岐について
-
マクロ教えてください
-
Excel ユーザーフォームで表示...
-
日本の白地図の画像に、都道府...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【EXCEL VBA】ダブルクリックで...
-
こんなことてしますか??
-
Pythonでgif画像が上手く作れない
-
Excel ユーザーフォームで表示...
-
VBA シート毎に画像挿入
-
生成AI画像について
-
EXCEL VBA 複数のImageコントロ...
-
HTMLで画像をポップアップで表...
-
UWSCの色判定
-
UWSC 画像判定と条件分岐について
-
jQuery . プログラミング 助け...
-
VBAのユーザーフォームのイメー...
-
背景画像の繰り返しについて
-
jqueryスライダーを2段でスライ...
-
vb.net 画像の透過について
-
【WPF】画像の切り替え
-
「using Windows」でエラーが出る
-
画像処理したBitmapをピクチャ...
-
スマホでサイトの画像を長押し→...
-
UWSC 画像認識で条件分岐
おすすめ情報