スクリーンショットを新しいファイルに保存するコマンド

スクリーンショットを新しいファイルに保存するコマンド

新しいスクリーンショットを撮って自分のホームフォルダのどこかに保存するようにグローバルショートカットを設定したいと思います。次のコマンドを使用して、ImageMagickを使用してスクリーンショットを撮ることができます。

import screenshot.jpg

ただし、これを複数回実行すると、スクリーンショット.jpgが複数回上書きされます。アプリケーションにscreen1.jpg、スクリーンショット2.jpgなどを自動的に作成させたいと思います。この場合、私のコマンドはどのように見えますか?

答え1

ファイルの命名

import screenshot-`date +%H%M%S`.jpg

答え2

グラフィカルユーザーインターフェース方法

次のようなものも使用できます。シャッター行ってこれをやってみてください。選択、ウィンドウ、またはデスクトップ全体のスクリーンショットを撮る機能を提供します。これらの操作は、Shutterの特定のキーボードショートカットに合わせてカスタマイズできます。

キーボードマッピングダイアログの表示

               シャッター1ss

命名パターンダイアログボックスの表示

               シャッター2ss

コマンドライン方法

コマンドを使用する場合importこれはImageMagickツールセット

はい

以下のコマンドを実行してからスクリーンショットを撮る準備ができたら、マウスの左ボタンをクリックするだけです。

$ import "screenshot-$(date  +"%d %b %T").jpg"

このファイルを生成します。

$ ls -l | grep screenshot
-rw-rw-r--   1 saml saml  2273538 Sep 26 13:06 screenshot-26 Sep 13:06:55.jpg

このコマンド形式では、importファイル名がスペースに分割されないように、すべての引数を引用符で囲む必要があります。

$ import "...file with spaces..."

このコマンドを使用して、現在アクティブなウィンドウのスクリーンショットを撮ることもできます。

$ import -window \
    "$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW): window" | cut -d" " -f5)" \
    "screenshot-$(date  +"%d %b %T").jpg"

上記の例では、このxpropコマンドはアクティブウィンドウのIDをプログラムで決定します。

$ xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW): window" | cut -d" " -f5
0x2e00004

ここでは、食欲を刺激するためにもっと複雑なことをすることができます。

答え3

スクリプト:

#!/bin/bash
n=0
maxn=1000
bn=screenshot%.jpg

while [[ $n -lt $maxn ]]; do
    # create temporary filename
    tn=${bn/\%/${n}}
    # check whether the file already exists
    if [[ -f $tn ]]; then
        ((n++))
    else
        screenshot_command $tn
        break
    fi
done

$bnパーセント文字が数字のプレースホルダーとして機能するファイルのデフォルト名。一部のファイルを削除すると、ファイルが存在しない場合はその名前が使用されるため、ファイルが再生成されます。計算順序(つまり、最大値から降順)を復元し、存在しない最後のファイル名を使用できます。既に存在するものをクリックしてください。

関連情報