画面の部分拡大鏡(虫めがね)を作ってみよう
探せばどこかにソフトがあるかもしれませんが、自分でツールを作って
動かしてみるのがやっぱり楽しいのです。
毎度、管理人イガジーです。
という訳で、今回は画面の部分拡大鏡(虫めがね)をJavaで作ってみます。
どういうものかというと、「マウス近傍を拡大して表示する」ものです。
これを作るにあたって、以下の技が必要になります。
・マウスの位置を取得する方法
・画面を取り込む(キャプチャーする)方法
・画像を拡大して描画する方法
・周期的に動かす方法(タイマータスク)
マウスの位置を得るには
PointerInfo pi=MouseInfo.getPointerInfo();
Point pp=pi.getLocation();
とします(pp.xにx座標が、pp.yにy座標が得られます)。
画面を取り込むには
rb=new Robot();
buf=rb.createScreenCapture(new Rectangle(x0,y0,ww,hh));
とします。
画像の拡大描画は
g.drawImage(imagebuffer, dx0,dy0,dx1,dy1, sx0,sy0, sx1, sy1, null);
です。
dxx,dyyは、描画先の座標(大きさ含む)で、sxx,syyは元画像の座標です。
例えば
g.drawImage(buf, 0,0,270,270, 0,0,9,9, null);
とすると、元画像(0,0)-(9,9)を(0,0)-(270,270)に拡大描画します。
タイマータスクは、以前に CountDownを作ってみよう6 で紹介して
いるので参照してください。
この記事へのコメントはこちら