スクリーンショットの周囲を切り落としたい
サーバー上でXウィンドウを飛ばしてプロットを作った時
転送するのが面倒なのでMacの画面をそのまま ⌘+Shift+4 でスクリーンショットを撮って済ませたくなる。
しかし、これをスライドに載せようと思った時には見栄えが悪いし作り直すのも、手動でトリミングするのも面倒だ。
元々のアイディアはこちらから
自分の環境で動かなくてpython3 のせいだとおもっていたが ImageMagick のidentifyコマンドを持っていなかったことに気がついた頃にはオリジナルのshellを書いていた。
convertコマンドを使って上下から決められた幅を切り落とす。
canvasのサイズがいくらであっても上下の幅は変わらないからね。
crop_screenshoot
#!/bin/bash
#crop screen shoot
#crop dimensions
top=56
bottom=29
right=22
left=22
#loop
for image in "$@"
do
if file -b "$image" | grep "PNG image data"; then
size=($(file -b "$image" | tr -cd '0123456789 \n'))
w=$(expr ${size[0]} - $left - $right)
h=$(expr ${size[1]} - $top - $bottom)
x=$left
y=$top
convert "$image" -crop $w"x"$h"+"$x"+"$y +repage "$image"
fi
done
を保存し実行権限を与えて
[iMac] smith: Desktop $ ./crop_screenshoot hoge.png
でくり抜ける。ワイルドカードも使える。
一度くり抜いたものは飛ばしたり、スクリーンショットを撮る時に最前面にいたかどうかで影のサイズが変わってしまうのでそのあたりもうまいことできたらいいなと思っている…