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 隨身碟,然後在 hookscript 中尋找新命令。

下一階段將使用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,但可以輕鬆變更為您首選的檢視器。

第二條if語句確保僅當下載的檔案是 JPG 時才使用 shotwell,因為有時我會將相機設定為建立 raw(佳能上的 CR2),但無法在 shotwell 中開啟。我想它可以擴展到與其他觀眾打開那些。

--filename該圖像將被保存為提供給- 在您的情況下的參數/home/media/usbpendrive/image-20140616-125500.jpg。這將是儲存在鉤子腳本中$ARGUMENT並傳遞給鉤子腳本的值。

您可以使用dirnamebasename將此路徑和檔案名稱拆分為相關部分,然後重新使用它們為映像建立新的路徑和檔案名稱。

$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 上是否可用。

相關內容