『7回目の出直し🌻』

好きなことを自分のペースで、のんびり更新

Screenpressoを使ってコマンドラインからキャプチャーを取る方法

今日は玄人好みの機能の紹介です。 Screenpressoをコマンドラインから起動し、スクリーンキャプチャーをします。

機能の紹介

コマンドラインからキャプチャー取得を実行するものです。マウスとか使わないでキャプチャー取ります。

  • キャプチャーを取るときにScreenpressoの画面を開きません
  • Screenpressoの管理フォルダ以外の場所にスクリーンショットを置くことができます

システムからスクショをとるとか、自動化するとか、ちょっと変わった用途向けのオプションです。

できないこと

コマンドラインのパラメータでキャプチャーエリアを指定するので、その場その場で自由に範囲を決めるような使い方はできません。 いつもこの場所のキャプチャーを撮る、みたいな使い方にマッチします。

Screenpresso.exeの保存先へGO

まずは、Screenpressoの実行ファイルの置き場所まで行きます。

たいていはこのフォルダに置いてあると思います。
C:\Users\ユーザ名\AppData\Local\Learnpulse\Screenpresso

f:id:kanaxx43:20210313161657p:plain

ファイルの場所が分からない場合

Windowsのスタートボタンで、Screenpressoを探します アイコンを右クリックすると、フォルダを開くを開きます f:id:kanaxx43:20210313142622p:plain

エクスプローラが開くので、Screenpressoのショートカットアイコンを右クリックして「ファイルの場所を開く」で到着できます f:id:kanaxx43:20210313142615p:plain

コマンドプロンプトで実行する手順

まずはヘルプを叩いて、やり方を調べましょう。

Rでコマンドプロンプトを開き、Screenpressoがインストールされているディレクトリに移動します。

cd C:\Users\user.DESKTOP-1BBUQNR\AppData\Local\Learnpulse\Screenpresso

ヘルプを見ときましょう

Screenpresso.exe -?

f:id:kanaxx43:20210313152817p:plain

色々出てきますが、次のオプションがコマンドラインからキャプチャーを取るオプションです。

-captureregion <filepath> <coordinates>

(take a screenshot then originally save result to given file)は、「スクショをとって指定されたファイルに保存する」という説明ですね。

オプションは、2つあります

  • 第一引数がファイルパス
  • 第二引数がスクショの範囲を指定するcoordinates

です。

第一引数のfilepathは、スクショの保存先です。ディレクトリ、ファイル名、拡張子を全部指定できます。

第二引数のcoordinatesは、スクショの範囲を決める変数です。

coordinatesを理解する

coordinatesの使い方は、マニュアルに以下のことが書いてありました。

Coordinates of the rectangular region of the screen to capture: X;Y;Width;Height, for instance:0;0;640;480
Use -1 for full screen: -1;-1;-1;-1
When the coordinates are not present, the user will be prompted to select the region to capture using the mouse

始点のX座標始点のY座標横幅縦幅の4つ値を指定して、四角形をキャプチャーします。

例えば
0;0;640;480 を指定するとディスプレイの左上ぴったりの位置から、横に640px、縦に480pxの範囲のスクショをとります。
-1を使うと全画面のキャプチャーになります。
何も指定しないときには、マウスでの範囲選択モードになり、その範囲をキャプチャーします。

スクショをとってみる

では、コマンドラインからスクショ作成をやってみましょう

保存先は、C:\tmp\screenpresso-rest\フォルダにしました(どこでもよいです)

#フルスクリーンのキャプチャー  
Screenpresso.exe -captureregion "C:\tmp\screenpresso-test\fullscreen.png" "-1;-1;-1;-1"

#場所指定のキャプチャ  
Screenpresso.exe -captureregion "C:\tmp\screenpresso-test\100x100.jpg" "50;50;100;100"

やってみると分かりますが、Screenpressoをまったく意識することなく、完全に裏側でスクショがとられます。

ファイルパスの拡張子を変えると、画像の形式が変わります

Screenpresso.exe -captureregion "C:\tmp\screenpresso-test\100x100.png" "50;50;100;100"
Screenpresso.exe -captureregion "C:\tmp\screenpresso-test\100x100.gif" "50;50;100;100"
Screenpresso.exe -captureregion "C:\tmp\screenpresso-test\100x100.tiff" "50;50;100;100"

ファイル名の拡張子を変えるだけで、保存形式が変わるなんて素敵です。

難点があります

ファイル名を変え忘れると上書きされてしまいます。 そんなときは、パスの指定に時間の変数を入れましょう。(Screenpressoの機能ではなくて、Windowsの機能です)

Screenpresso.exe -captureregion "C:\tmp\screenpresso-test\%date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%.jpg" "50;50;100;100"

さいごにまとめ

今回は普通ではない(高度な)Screenpressoの使い方を紹介しました。
この方法は普段利用のものではないので、理解する必要はないです。何かのプログラムから実行して自動的に決まった範囲のキャプチャーを取るとか、そういう使い方をするときに使うものです。

ファイルの保存先がScreenpressoのワークスペース設定に縛られずに、自由に指定できることが唯一のメリットですかねぇ。

そんな感じです。