web-dev-qa-db-ja.com

事前定義された領域のスクリーンショットを非対話的に取得し、キーを押したときに自動的に保存する方法は?

以前はWindowsで「Gadwin印刷画面」を使用していました。ショートカットを押すだけで、事前定義された画面領域がフォルダーに保存され(質問はありません)、これは長いオンラインコースを行うときに非常に役立ちます。

Ubuntuに切り替えましたが、別の方法が必要です。私はシャッターをインストールし、「選択」ツールをトリガーして画像を自動保存できるショートカットを作成しましたが、問題は事前定義された選択領域(デフォルトでは画面の右下にあります)を再配置する必要があることです、そしてシャッターは以前の位置を記憶していません。これは、何百ものスクリーンショットが撮られる私の使用シナリオでは時間がかかります。

1
dipu

Scrotとimagemagickを実装するスクリプトをキーボードショートカットにバインドする

1)必要なアプリケーションをインストールします

コマンドラインから、次を実行します。

Sudo apt install scrot imagemagick

2)スクリプトを作成します

選択したテキストエディターを開き、次の内容で新しいプレーンテキストファイルを作成します。上部の変数を変更して、画像を保存する場所と、画面のどの部分を切り抜くかを指定してください。 lefttopの検索とwidthheightの計算に使用できるマウス座標の取得については、 このトリック を参照してください。

#!/bin/bash

# Change these values to match your preferences
imageQuality=100    # scrot default is 75
screenshotDir="/tmp"
imageName="$(date +%Y-%m-%d.%H:%M:%S.%N).jpg"   # save image names as timestamp
left=10     # begin crop this number of pixels from the left of the image
top=10      # begin crop this number of pixels from the top of the image 
width=100   # crop this many pixels wide
height=100  # crop this many pixels tall

#Do not make any more changes from here down unless you know what you're doing
imagePath="$screenshotDir/$imageName"

scrot -q $imageQuality "$imagePath"
convert "$imagePath" -crop ${width}x${height}+${left}+${top} "$imagePath"

このスクリプトを好きな場所に保存し、実行可能にします。スクリプトにscreenshot.shという名前を付けたとすると、コマンドラインで次のように実行します。

chmod +x /path/to/your/script/screenshot.sh

3)このスクリプトをキーボードショートカットにバインドします

指示に従って ここにあります に従って、カスタムキーボードショートカットを作成します。コマンドを入力する場所に到達したら、screenshot.shファイルへの完全なパス(ファイル名を含む)を入力します。

3
b_laoshi