
画像RSS
- 1
Creepypasta私家訳『私のためじゃない美』(原題“Aesthetically Pleasing”)2025-01-05 17:03"Lips." by Haleyface is licensed under CC BY 2.0. 作品紹介 男たちの欲望に答え続けた女の、ありふれた絶望の物語。 作品情報 原作 Aesthetic...
- 2
Creepypasta私家訳『肖像画』(原題“The Portraits”)2025-01-05 12:40"Frame 2" by ~jar{} is licensed under CC BY 2.0. 作品紹介 かなり古典的なクリーピーパスタです。 Creepypasta Wikiでは“Suggest...2025-01-05 12:40
- 3
さよならシャニアニ2期2024-12-29 13:57先日、『アイドルマスターシャイニーカラーズ 2nd season』最終話が放映されました。私はシャニアニ1期をネット配信で、2期第1・2章を映画館で鑑賞しました。当初は2期第3章も映画館で見る予定で...2024-12-29 13:57
- 4
Creepypasta私家訳『鬼ごっこ』(原題“A Game of Tag”)2024-12-18 14:30"YouTube Test" by Jaysin Trevino is licensed under CC BY 2.0. 作品紹介 動画に記録された、恐るべき怪異についての物語。怪異は犠牲者を追い...2024-12-18 14:30
- 5
Creepypasta私家訳『ウッドハロー公園の子供たち』(原題“The Children of Woodharrow Park”)2024-12-08 09:29作品紹介 絶望した男が出会った、不思議な子供たちのお話です。 Creepypasta Wikiでは“Pasta of the Month”に指定されています。 作品情報 原作 The Childre...2024-12-08 09:29
- 6
enza版シャニマス6.5th、シャニソン1stアニバーサリーイベントの記録2024-11-17 06:55先日、enza版シャニマスは6.5周年、シャニソンは1周年のアニバーサリーを迎えた。アニバーサリーイベントは大盛況……だったら良かったのだが、実際のところは学マスの陰に隠れて風前の灯と言ったところ。...2024-11-17 06:55
- 7
Creepypasta私家訳『ハッピー・サン・デイケア』(原題“Happy Sun Daycare”)2024-09-23 02:43作品紹介 はすお様からのリクエストで翻訳しました。廃業した保育園に隠された過去の物語です。 “Happy Sun Daycare”は「ハッピー・サン保育園」などとも訳せそうですが、「ハッピー・サン・...2024-09-23 02:43
- 8
Creepypasta私家訳『セオドアくんへ』(原題“Dear Theodore”)2024-09-12 14:54"Beds" by Didriks is licensed under CC BY 2.0. 作品紹介 お節介な恐ろしいモンスターについてのお話です。Creepypasta Wikiでは“Sugge...2024-09-12 14:54
- 9
シャニアニ2ndに水を差す2024-09-08 10:00画像は『アイドルマスターシャイニーカラーズ 2nd season』の「第2章」より引用 (2024年9月8日取得。©Bandai Namco Entertainment Inc.) 現在、『アイドル...2024-09-08 10:00
- 10
福丸小糸のフィギュアについて考察する2024-08-27 18:42左は「福丸小糸 ミッドナイトモンスターver.」。右手前は「【はれのひ喫茶店】福丸小糸」。右奥はもちWhat!というシリーズのぬいぐるみ。 福丸小糸とは、『アイドルマスター シャイニーカラーズ』シリ...2024-08-27 18:42
2016年9月4日日曜日
Javaでスクリーンキャプチャ
Javaでスクリーンショットを撮る
ディスプレイに表示されている画面を画像データ化したいとき、つまりはスクリーンショットを撮りたいときがある。WindowsではPrintScreenキーを押すとクリップボードにスクリーンショットを保存できる。画像編集ソフトウェアのGIMPには高度なスクリーンキャプチャの機能がある。 そして、Javaにもスクリーンショットのための機能がある。
Javaには標準でjava.awt.Robotというクラスが存在する。このクラスは仕様書によると「Java プラットフォーム実装テストを自動化する」ために存在するらしく、自動的にキーボードのキーを押したりカーソルを移動させたりする機能がある。 当記事で紹介するのはこのクラスのcreateScreenCaptureメソッドである。
このcreateScreenCaptureメソッドがスクリーンキャプチャの働きをするメソッドである。 引数はjava.awt.Rectangleのインスタンスであり、これで撮影する範囲をXY座標、幅、高さで指定する。 返り値はjava.awt.image.BufferedImageのインスタンスであり、このインスタンスは画像データを示す。こうして得られた画像をそのままファイルとして保存したり何かしらに表示したりすることができる。
連続スクリーンキャプチャ
このスクリーンキャプチャの機能を利用するために私が実際に作成したプログラムの一部を次に示す。このプログラムは指定した回数countだけ撮影するというもので、指定したミリ秒delayの分だけ撮影毎に間隔をあける。そして、撮影したスクリーンショットのハードコピーをディレクトリdirに適当な名前をつけて保存する。 Robotにはスレッドスリープの機能をするdelayメソッドもあるためそれも利用した。 画像の保存ではjavax.imageio.ImageIOクラスを用いた。
//Robotを取得 Robot robot=null; try{ robot=new Robot(); }catch(AWTException e){ e.printStackTrace(); } for(int i=0;i<count;i++){ /*遅延*/if(i!=0)robot.delay(delay); //ハードコピーを取得 BufferedImage image=robot.createScreenCapture(rectangle); try { //画像を出力 (形式はPNG) ImageIO.write(image,"PNG",new File(dir,"screenshot"+(i+1)+".png")); }catch(IOException e){ e.printStackTrace(); } }
なお、RobotにはgetPixelColorというメソッドもある。このメソッドは指定した座標のピクセルの色を取得するというものである。 このように、Robotには少し変わった機能があり、工夫次第で面白い使い方もできるかもしれない。
0 件のコメント:
コメントを投稿