画面の部分拡大鏡(虫めがね)を作ってみよう

 

探せばどこかにソフトがあるかもしれませんが、自分でツールを作って
動かしてみるのがやっぱり楽しいのです。

毎度、管理人イガジーです。

という訳で、今回は画面の部分拡大鏡(虫めがね)を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 で紹介して
いるので参照してください。

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)