2015年9月22日火曜日

画面をキャプチャーできるようにする

とりあえず使えるレベルになったので、ここから投稿できるように画像をキャプチャできる環境を作ってみます。

どうやってキャプチャするか

さて、どうやって取れるようにするかですが、とりあえずマニュアルを見ましょう。

スクリーンショットの取得を見るといくつか方法があります。

「GIMP」を導入すればキャプチャもできるし、編集もできるのでいいですね。

しかし「ImageMagick/GraphicsMagick」を使ってキーボードショートカットを使うというのも悪くありません。

せっかくだから、両方できるようにしてみましょう。

GIMPを導入

まずはGIMPからいってみましょう。
$ sudo pacman -S gimp

途中で見つからないパッケージがありそうだったけど、無事見つかったのであっさりインストールできました。

早速起動します。スタート→グラフィックス→GIMP

画面キャプチャを実行します。ファイル→画像の生成→スクリーンショット

選択範囲をキャプチャするを選択し、スナップボタンを押します。マウスでドラッグして範囲決定。

これでキャプチャできました。

ファイル→エクスポートでPNGファイルで書き出し、~/Pictures/Capture/の中に保存してみます。


はい。貼ってみました。とりあえず使えることがわかりました。
ちなみに、ウインドウを指定して取り込んでみたらいろいろ切れてました・・・

ImageMagick/GraphicsMagickを導入

importというコマンドを使うために、imagemagickというパッケージを導入します。

$ sudo pacman -S imagemagick

あっさり入りました。

$ import ~/Pictures/Capture/sc.jpg

を実行すると、さっきのようにマウスで選択した部分がカットされて保存できます。


はい。保存できました。便利ですが、コマンドで実行するのも面倒なのでショートカットを登録します。
マニュアルの「他のデスクトップ環境やウィンドウマネージャ」を見ると方法が書いてありました。rc.xmlにキャプチャするコマンドを書けば良いと。

「なるほど。で、rc.xmlって何?」

と調べてみると、
各ユーザフォルダの、~/.config/openbox/lxde.rc.xml
がそれに該当するようです。

ファイルの中身を見てみると、途中に

    <keybind key="Print">
      <action name="Execute">
        <command>gnome-screenshot -i</command>
      </action>
    </keybind>
みたいなところがあります。どうやらこうやって書いておくと設定できるようです。
試しにPrintScreenを押してみると、gonome-screenshotが起動できませんと言われました。

シェルスクリプトを作って挑戦

マニュアル通りではなく、ちょっとだけ便利にWindowsみたいにキャプチャできるようにしてみます。ここのページの説明を使ってスクリプトを作ってみます。

まずいきなりxpropというコマンドがありません。
$ pacman -sSq xprop
で探したらxorg-xpropだというので

$ sudo pacman -S xorg-xprop

でインストール。

$ xprop -root | grep ^_NET_ACTIVE_WINDOW

_NET_ACTIVE_WINDOW(WINDOW): window id # 0x2000004

というようにアクティブウインドウの情報が取れたので最後のIDだけ切り取るようにします。

$ xprop -root | grep ^_NET_ACTIVE_WINDOW | awk '{print $5}'
これで0x2000004だけが出てきました。

$ nano screenshot
#!/bin/sh

OUT=~/Pictures/Capture/$(date '+%Y%m%d-%H%M%S').png
WID=root

if [ "x$1" != "x-root" ]; then
    WID=`xprop -root | grep ^_NET_ACTIVE_WINDOW | awk '{print $5}'`
    [ "x$WID" == "x0x0" ] && WID=root
fi
import -frame -window $WID $OUT

$ chmod 755 screenshot
で実行できるようにして、
$ ./activew_screenshot
でアクティブなウインドウが保存できました。

$ ./activew_screenshot -root
で、全画面もキャプチャできます。

通っていなかったので、ユーザフォルダのbinにパスを通します。最初に.zshrcに通したら、openboxから見えませんでした・・・。

$ nano ~/.xprofile
export PATH=~/bin:$PATH

再起動するとパスが通ります。

$ which screenshot
で探せればパスは通ったはずです。

最後に、~/.config/openbox/lxde.rc.xmlを再度編集。
    <keybind key="Print">
      <action name="Execute">
        <command>screenshot -root</command>
      </action>
    </keybind>
    <keybind key="A-Print">
      <action name="Execute">
        <command>screenshot</command>
      </action>
    </keybind>

これで、PrintScreenボタンで全画面キャプチャ、Alt+PrintScreenボタンで特定のウインドウキャプチャになりました。


これで画像が投稿できる(笑)


目次に戻る

0 件のコメント:

コメントを投稿