私はこれを raspberrypi.stackexchange に投稿しましたが、ここに誘導されました。私は Linux / Unix の初心者で、 でテザー / ディスプレイ スクリプトを実行しようとしていますgphoto2
。
gphoto2 --capture-tethered --hook-script=myhookscript.sh \
--filename="/home/media/usbpendrive/image-%Y%m%d-%H%M%S.jpg" \
--force-overwrite
これは、イメージを USB ペンドライブにダウンロードし、フックスクリプトで新しいコマンドを探すことになっています。
次の段階では、qiv
または同様の画像ビューアを使用してフォルダー内の最後のキャプチャを探し、それを全画面で表示します。このフック スクリプトの作成方法をわかりやすく説明していただけると幸いです。
答え1
Gphoto は、使用できるフック スクリプトに$ACTION
と を渡します。$ARGUMENT
例:-
#!/bin/bash
if [ $ARGUMENT ]; then
if [[ $ARGUMENT =~ .+\.[jpg|JPG] ]]
then
# Then next few lines are optional
# Alternatively pass $ARGUMENT directly to your image viewer eg:-
# /usr/bin/shotwell "$ARGUMENT" &
DIRNAME=$(dirname "$ARGUMENT")
BASENAME=$(basename "$ARGUMENT")
NEWFILENAME="$DIRNAME/my_new_folder/$BASENAME"
mv "$ARGUMENT" "$NEWFILENAME"
/usr/bin/shotwell "$NEWFILENAME" &
fi
fi
これにより、ファイルは で開きますshotwell
が、好みのビューアに簡単に変更できます。
2 番目のif
ステートメントは、ダウンロードしたファイルが JPG の場合にのみ shotwell が使用されるようにします。カメラが RAW (Canon の CR2) を作成するように設定されていて、shotwell で開けないことがあったためです。これを拡張して、別のビューアで開くこともできると思います。
画像は、--filename
あなたの場合、 -に指定された引数として保存されます。これが に保存され、フック スクリプトに渡される/home/media/usbpendrive/image-20140616-125500.jpg
値になります。$ARGUMENT
dirname
と を使用してbasename
、このパスとファイル名を関連する部分に分割し、それらを再利用してイメージの新しいパスとファイル名を作成できます。
$dirname /home/media/usbpendrive/image-20140616-125500.jpg
/home/media/usbpendrive
$basename /home/media/usbpendrive/image-20140616-125500.jpg
image-20140616-125500.jpg
$ARGUMENT
gphoto
はイメージをダウンロードしているときのみ使用可能であるため、$ACTION
この場合は のチェックは不要になります。
もちろん、ファイルには実行ビットが設定されている必要があります。
私はこれを使うのをやめたのですが絡み合うしかし、それが Pi で利用できるかどうかはわかりません。