dcamt
Publicado por Jean Michel 26/11/2004
[ Hits: 4.927 ]
Script para renomear, dimencionar, e organizar imagens
apartir de diretórios ou cameras digitais.
#!/bin/bash
#################################################################################
# #
# DCAMTOOLv2.0: Rename and resize your pictures. #
# requeriments: grep, awk, imagemagick #
# #
#################################################################################
# Copyright (C) 2004 Jean Michel Feltrin feltrin@gmail.com #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not, write to the Free Software Foundation, #
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
# #
# #
#################################################################################
echo -e " _ _"
echo -e " __| | ___ __ _ _ __ ___ | |_"
echo -e " / _ |/ __/ _ | '_ _ \| __|"
echo -e "| (_| | (_| (_| | | | | | | |_"
echo -e " \__,_|\___\__,_|_| |_| |_|\__|"
echo -e
# Configures:
WDIR="$PWD" # WORK DIRECTORY
TITLE="dsc" # EVENT NAME
INUM=0 # INCREMENT NUMBER
RSIZE="640x480" # RESIZE VALUE
ALBUM="/home/$USER/Album" # Album colection Dir
TITLE=$(echo "$TITLE`date +%d%m%y`")
CDEV="/dev/sda1" # Your Digital Camera Device
######################################################
# Album Configure
ALBUM="/home/$USER/Album" # Album colection Dir
if [ ! -d $ALBUM ]; then
mkdir $ALBUM
fi
YDATE=`date +%Y`
ptMES="Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro"
cmes=0
for enPT in `echo $ptMES`; do
let cmes=$cmes+1
if [ $cmes = `date +%m` ]; then
MDATE=$enPT
fi
done
if [ ! -d $ALBUM/$YDATE/$MDATE ]; then
mkdir -p $ALBUM/$YDATE/$MDATE
fi
ABDIR=$ALBUM/$YDATE/$MDATE
######################################################
# Warning! if you set this options it'll copy all your
# pictures from your memory stick to your machine
# CDIR THE DIR WITH THE CAM PICTURES
# you should check this directory according to your cam
CDIR="/mnt/cam/dcim/101msdcf"
######################################################
if [ "`mount | grep $CDEV | awk '{print $1}'`" = "/dev/sda1" ]; then
echo "Would you work on you digital camera pictures,"
echo -n "it will copy all your camera file to: /tmp/dcamt/, would you ? (y/n):"
read mfop
MFFREE=`echo $mfop | tr [A-Z] [a-z]`
if [ $MSFREE != "N" ]; then
if [ ! -d /tmp/dcamt ]; then
mkdir /tmp/dcamt
fi
cp $CDIR/* /tmp/dcamt/
WDIR="/tmp/dcamt"
fi
fi
######################################################
if [ ! -z $1 ]; then
TITLE="$1"
TITLE=$(echo "$TITLE`date +%d%m%y`")
fi
if [ ! -z $2 ]; then
RSIZE="$2"
echo $RSIZE
if [ $RSIZE = "1024x768" ]; then
RSIZE="1024x768"
elif [ $RSIZE = "800x600" ]; then
RSIZE="800x600"
elif [ $RSIZE = "640x480" ]; then
RSIZE="640x480"
else
RSIZE="640x480"
fi
fi
if [ ! -z $3 ]; then
#RENAME
rlop="$3"
fi
if [ ! -z $4 ]; then
#SIZE
lop="$4"
fi
if [ ! -z $5 ]; then
#MOVE
mlop="$5"
fi
function showcf()
{
echo
echo "Configure:"
echo -e "\t WORKDIR\t:[ $WDIR ]"
echo -e "\t TITLE\t\t:[ $TITLE ]"
echo -e "\t RESIZED VALUE\t:[ $RSIZE ]"
echo "--------------------------------"
echo
}
showcf
function conf()
{
lcop=$6
echo -n "Would you change the configuration ? (y/n): "
if [ -z $lcop ]; then
read cop
lcop=`echo $cop | tr [A-Z] [a-z]`
fi
if [ "$lcop" = "y" ]; then
echo "! To keep the default just press ENTER !"
echo
echo -n "Workdir: "
OWDIR=$WDIR
read WDIR
if [ -z $WDIR ]; then
WDIR=$OWDIR
fi
echo -n "Title: "
OTITLE=$TITLE
read TITLE
if [ -z $TITLE ]; then
TITLE=$OTITLE
fi
echo -n "Resize: "
OLDRSIZE=$RSIZE
read RSIZE
if [ -z $RSIZE ];then
RSIZE=$OLDRSIZE
fi
echo
showcf
fi
}
conf
# RENAME THE FILE
if [ -z $rlop ]; then
rlop=n
fi
while [ $rlop != "y" ];
do
echo -n "Would you rename the files ? (y/n): "
read op
rlop=`echo $op | tr [A-Z] [a-z]`
if [ $rlop = "y" ]; then
for FILE in `ls $WDIR/*.jpg`
do
if [ $FILE = "dcamt.sh" ] || [ $FILE = "dcamt" ]; then
continue
fi
let INUM=$INUM+1
EVNUM=`echo "$TITLE-0"`
RENAME=`echo "$EVNUM$INUM.jpg"`
if [ "$FILE" != "$RENAME" ]; then
echo "Renaming: $FILE to $RENAME"
mv $FILE $WDIR/$RENAME
else
echo "RENAME: The files were with the same name."
break
fi
done
#
fi
if [ $rlop = "n" ]; then
break
fi
done
# Image Size
if [ "$OSIZE" = "$RSIZE" ]; then
echo "RESIZE: The files are with the same size."
else
if [ -z $lop ]; then
lop=n
fi
while [ $lop != "y" ];
do
echo -n "Would you chage your images size $OSIZE to $RSIZE ? (y/n): "
read op
lop=`echo $op | tr [A-Z] [a-z]`
if [ $lop = "n" ]; then
break
fi
done
if [ $lop = "y" ]; then
for FILE in `ls $WDIR/*.jpg`
do
OSIZE=`convert -verbose $FILE /dev/null | head -n 1 | cut -d " " -f3 | cut -d "+" -f 1`
echo "Converting $FILE with $OSIZE to $RSIZE"
convert -size $OSIZE $FILE -resize $RSIZE $FILE
done
fi
fi
# Move files to an other directory
if [ -z $mlop ]; then
mlop=n
fi
while [ $mlop != "y" ];
do
echo -n "Would you move all jpg files to $TITLE directory ? (y/n): "
read op
mlop=`echo $op | tr [A-Z] [a-z]`
if [ $mlop = "n" ]; then
break
fi
done
if [ $mlop = "y" ]; then
mkdir $WDIR/$TITLE
for FILE in `ls *.jpg`
do
echo "Moving: $FILE..."
mv $FILE $TITLE/
done
echo "All files were moved with sucess. Done"
mv $WDIR/$TITLE/ $ABDIR/
fi
################################################
Script para relatório de download de arquivos via Squid
Display números digital no terminal
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









