gphoto2 フック スクリプト - ガイド?

gphoto2 フック スクリプト - ガイド?

私はこれを 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

$ARGUMENTgphotoはイメージをダウンロードしているときのみ使用可能であるため、$ACTIONこの場合は のチェックは不要になります。

もちろん、ファイルには実行ビットが設定されている必要があります。

私はこれを使うのをやめたのですが絡み合うしかし、それが Pi で利用できるかどうかはわかりません。

関連情報