やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

raspi2pngでスクリーンショットを撮る(scrotでは撮影できないものも可)

 MineCraftPIの画面なども撮影できる。

手順

  1. インストール
  2. バージョン
  3. ヘルプ
  4. 使ってみる

1. インストール

mkdir -p /tmp/work
cd /tmp/work
wget https://github.com/AndrewFromMelbourne/raspi2png/archive/master.zip
unzip master.zip
cd raspi2png-master
make
sudo cp raspi2png /usr/local/bin
rm -Rf /tmp/work/raspi2png-master

2. バージョン

 なんとバージョン情報が確認できない!

3. ヘルプ

$ raspi2png --help
Usage: raspi2png [--pngname name] [--width <width>] [--height <height>] [--compression <level>] [--delay <delay>] [--display <number>] [--stdout] [--help]

    --pngname,-p - name of png file to create (default is snapshot.png)
    --height,-h - image height (default is screen height)
    --width,-w - image width (default is screen width)
    --compression,-c - PNG compression level (0 - 9)
    --delay,-d - delay in seconds (default 0)
    --display,-D - Raspberry Pi display number (default 0)
    --stdout,-s - write file to stdout
    --help,-H - print this usage information

4. 使ってみる

4-1. --pngname

 ファイル名をタイムスタンプにして重複しないようにする。

raspi2png -p "$(date "+%Y%m%d%H%M%S%N").png"

 上記なら保存パスはカレントディレクトリ。なのであらかじめ保存したいパスへcdしておく。

cd /tmp/work/SS

 絶対パスなら以下。

raspi2png -p "/tmp/work/SS/$(date "+%Y%m%d%H%M%S%N").png"

4-2. --compression

 -c 0で無圧縮。ファイルサイズがバカでかくなる。-c 9なら最大圧縮。ファイルサイズが小さくなる。おそらくデフォルトで-c 9になっている。

raspi2png -c 9 -p "/tmp/work/SS/$(date "+%Y%m%d%H%M%S%N").png"

 もっとも、これでも大きいためpngquantなどのコマンドで圧縮する。

file="/tmp/work/SS/$(date "+%Y%m%d%H%M%S%N").png"
quality=20
newfile="/tmp/work/SS/$(date "+%Y%m%d%H%M%S%N")_${quality}.png"
raspi2png -p "$file"
pngquant --strip --quality ${quality} --skip-if-larger --output "${newfile}" "${file}"
rm -Rf "${file}"

4-3. --delay

 以下で5秒後に撮影する。

raspi2png -p "$file" -d 5

参考

所感

 対象ウインドウのみ撮影するということができない。ディスプレイ全体の撮影となってしまう。ウインドウ部分だけを抜き取るための画像編集が面倒。GIMPなど画像編集ソフトで切り取ることになる。