Publiqué esto en raspberrypi.stackexchange pero fue dirigido aquí. Soy nuevo en Linux/Unix y estoy intentando conseguir un script de conexión/pantalla con gphoto2
.
gphoto2 --capture-tethered --hook-script=myhookscript.sh \
--filename="/home/media/usbpendrive/image-%Y%m%d-%H%M%S.jpg" \
--force-overwrite
Se supone que esto debe descargar la imagen a mi memoria USB y luego buscar nuevos comandos en el hookscript.
El siguiente paso sería utilizar qiv
un visor de imágenes similar para buscar la última captura en la carpeta y luego mostrarla en pantalla completa. Me gustaría que alguien me explicara en términos sencillos cómo hacer este script de gancho.
Respuesta1
Gphoto pasa $ACTION
y $ARGUMENT
al script de gancho, que puedes usar.
Como ejemplo:-
#!/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
Esto abre el archivo en formato shotwell
, pero es fácil cambiarlo a su visor preferido.
La segunda if
declaración asegura que shotwell solo se use si el archivo descargado es un JPG, ya que a veces tenía la cámara configurada para crear raw (CR2 en una Canon) que no se abría en shotwell. Supongo que podría ampliarse para abrirlos con otro espectador.
La imagen se guardará como el argumento proporcionado a --filename
- en su caso /home/media/usbpendrive/image-20140616-125500.jpg
. Ese será el valor almacenado $ARGUMENT
y pasado a su script de enlace.
Puede usar dirname
y basename
para dividir esta ruta y nombre de archivo en sus partes relevantes y luego reutilizarlos para crear una nueva ruta y nombre de archivo para la imagen.
$dirname /home/media/usbpendrive/image-20140616-125500.jpg
/home/media/usbpendrive
$basename /home/media/usbpendrive/image-20140616-125500.jpg
image-20140616-125500.jpg
$ARGUMENT
solo está disponible cuando gphoto
se descarga la imagen, por lo que verificar $ACTION
sería redundante en este caso.
Por supuesto, el archivo deberá tener configurado su bit ejecutable.
Sólo dejé de usar esto cuando descubríEnredarpero no estoy seguro de que esté disponible en Pi.