Hiparco

Recetas y trucos de GNU/Linux e informática en general

Alojado en http://guimi.net

Script para procesar fotos

Tras varios apuntes sobre como trabajar con fotos, pongo aquí el script completo que yo utilizo:

#!/bin/bash
#
# procesa_fotos.sh
# Por Guimi 2009/08 - http://www.guimi.net
#
# Ult. modificacion 2013/03 - http://guimi.net
#
# REQUIERE exif y jhead

####################################
#### ERRORES
E_NOPARAM=64        # Bad number of params

##########################
# PARAMETROS
DIR="./procesadas"

mkdir $DIR

echo "Renombrando videos..."
# Los ficheros .mov son peliculas que tienen asociado
# un fichero .jpg con el mismo nombre
for x in `ls *.mov 2> /dev/null`
do
	# Primero tomamos el directorio, el nombre y la extension
	#directorio=$(dirname "$x")
	nombre_fichero=$(basename "$x")
	#extension="${nombre_fichero##*.}"
	nombre_fichero="${nombre_fichero%.*}"

	# Comprobamos si existe el mismo fichero con extension jpg
	# En algunas camaras se llama .thm pero NO tiene cabecera exif
	if [ -f $nombre_fichero.jpg ]
	then
		# Tomamos la fecha, hora, minuto y segundo de la cabecera exif
		momento=`exif -t 0x9003 -m $nombre_fichero.jpg`
		nuevo_nombre="${momento:0:4}${momento:5:2}${momento:8:2}-${momento:11:2}${momento:14:2}${momento:17:2}"

		# Renombramos el fichero mov
		cp $x $DIR/$nuevo_nombre.mov
	else
		# Copiamos el fichero mov
		cp $x $DIR
	fi
done

# Los ficheros .mov son peliculas que tienen asociado
# un fichero .jpg con el mismo nombre
for x in `ls *.MOV 2> /dev/null`
do
	# Primero tomamos el directorio, el nombre y la extension
	#directorio=$(dirname "$x")
	nombre_fichero=$(basename "$x")
	#extension="${nombre_fichero##*.}"
	nombre_fichero="${nombre_fichero%.*}"

	# Comprobamos si existe el mismo fichero con extension jpg
	# En algunas camaras se llama .thm pero NO tiene cabecera exif
	if [ -f $nombre_fichero.JPG ]
	then
		# Tomamos la fecha, hora, minuto y segundo de la cabecera exif
		momento=`exif -t 0x9003 -m $nombre_fichero.JPG`
		nuevo_nombre="${momento:0:4}${momento:5:2}${momento:8:2}-${momento:11:2}${momento:14:2}${momento:17:2}"

		# Renombramos el fichero mov
		cp $x $DIR/$nuevo_nombre.mov
	else
		# Copiamos el fichero mov
		cp $x $DIR
	fi
done

echo "Renombrando fotos..."
# Copiamos las fotos al directorio de trabajo
cp *.jpg $DIR
cp *.JPG $DIR
# Nos movemos al directorio de trabajo
cd $DIR
# Renombramos ficheros y los rotamos si es menester
jhead -autorot -n%Y%m%d-%H%M%S *.jpg > /dev/null
jhead -autorot -n%Y%m%d-%H%M%S *.JPG > /dev/null
#jhead -n%Y%m%d-%H%M%S *.jpg