C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: JAVA 指定した座標の色情報


(過去ログ 28 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■12910 / inTopicNo.1)  JAVA 指定した座標の色情報
  
□投稿者/ アル (1回)-(2008/01/20(Sun) 21:07:52)

分類:[Java] 

はじめまして、アルといいます。
質問させてください。
今、自分はGUIを使って、画像を読み込んで表示、
そして、マウスでクリックした部分の色と同じ色の部分を
黒で塗りつぶす、というプログラムを作ろうと思っているのですが、
public class GazouHyoujiSample extends JPanel implements MouseListener{
	@Override
	protected void paintComponent(Graphics g) {
		g.drawImage(image_, 0, 0, this);
	}
	public GazouHyoujiSample(BufferedImage image) {
		image_ = image;
		Dimension size = new Dimension(image.getWidth(), image.getHeight());
		setPreferredSize(size);
		setMinimumSize(size);
		setMaximumSize(size);
		setSize(size);
		addMouseListener(this);
	}
	public static void main(String[] args) {
		JFrame frame = new JFrame("画像変換サンプル");
		frame.setBounds(0, 0, 400, 400);
		
		BufferedImage image = null;
		try {
			image = ImageIO.read(new File("./images/parrots.png"));
		} catch (IOException e) {
			e.printStackTrace();
		}
		frame.add(new GazouHyoujiSample(image));
		
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	private BufferedImage image_;

	int x_,y_;

	public void mouseClicked(java.awt.event.MouseEvent a) {
		x_ = a.getX();
		y_ = a.getY();
		System.out.println(x_+" "+y_);
		
	}	
}
コレで何とか画像の読み込み、表示、クリックした部分の座標の取得はできたんですが、
その座標を使って、その部分の色を取得する方法が分かりませんでした。
ネットを使って調べたり、イクリプスの保管を利用してgetやcolorが付いている物を調べたんですが
良い方法が出てきませんでした。
自分の検索方法が拙いのかもしれませんが、どなたか良い方法をご教授いただけませんか?
よろしくお願いします。

引用返信 編集キー/
■12937 / inTopicNo.2)  Re[1]: JAVA 指定した座標の色情報
□投稿者/ 凪瀬 (8回)-(2008/01/21(Mon) 16:19:28)
凪瀬 さんの Web サイト
ComponentからImageを取ることは無理だったと思うので
自前で描画用のバッファを用意することになると思いますね。

java.awt.image.BufferedImageを用意して、JPanelではBufferedImageに描画してから、
BufferedImageの内容をGraphicsに描画するようにしておきます。
こうすることで、現在の描画状態をBufferedImageオブジェクトに保持しておけますから、
あとはBufferedImage#getRGB(int x, int y)あたりで該当座標の色を取得すればよいでしょう。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -