dcamt
Publicado por Jean Michel 26/11/2004
[ Hits: 4.557 ]
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 ################################################
GoogleChromeUpdate.sh para Slackware
Script para formatação de disquetes em modo texto
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)