você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Digitalizando várias fotos no Linux

Colaboração: Ricardo Jurczyk Pinheiro

Data de Publicação: 06 de November de 2008

Há algum tempo precisei digitalizar várias fotos no scanner ("escanear" não, falemos português), e como eu não tinha paciência de ficar montando e cortando no GIMP, resolvi que o computador deveria fazer o trabalho sujo, e não eu. Logo, fiz esse script aí embaixo. Você precisa do pacote sane-backends instalado (se você estiver usando Fedora, que nem eu), e do ImageMagick (que é o mesmo nome em todas as distros que já usei). Tenho usado faz algum tempo, e o melhor: Funciona! Dá para fazer um monte de modificações nele, como mexer no número de DPIs, por exemplo.

#!/bin/sh
#
# scanfotos - Digitaliza um conjunto de fotos que estao no scanner,
# depois corta, gira e salva. Pode ser usado para digitalizar um
# conjunto grande, bastando informar a quantidade.
# Autor: Ricardo Jurczyk Pinheiro - ricardojpinheiro@ibest.com.br
# Versao 0.000000000000000000000000000000000000000000000000001111
#
#
NOINICIAL=1
NOME=foto
QTASFOTOS=4
CONVERT=$(which convert)
SCANIMAGE=$(which scanimage)
TEMP1=$(mktemp)
TEMP2=$(mktemp)
if [ "$#" -ne 3 ]
then
      echo "$0 < nome das fotos> < no. inicial> < no. final>"
      exit 1
fi
echo "Nome das fotos:" $1
echo "Numeração inicial:" $2
echo "Numeração final:" $3
#
i=$NOINICIAL
NOME=$1
NOINICIAL=$2
QTASFOTOS=$3
while [ $NOINICIAL -le $QTASFOTOS ]
do
# Para digitalizar a imagem (300x300 dpi)
      $SCANIMAGE --resolution 300 --mode Color > $TEMP1.tif
      $CONVERT $TEMP1.tif -antialias -gamma 2.2 $TEMP2.tif
      mv $TEMP2.tif $TEMP1.tif
# Reescalar a imagem, cortar, fazer 4 imagens, rotacionar 270 graus e salvar em JPG (90%)
      $CONVERT $TEMP1.tif -crop 1136x1788+0+0 -rotate 270 -geometry "1024>x1024>" -quality 90 $NOME$NOINICIAL.jpg
      NOINICIAL=$(expr $NOINICIAL + 1)
      $CONVERT $TEMP1.tif -crop 1136x1788+1345+0 -rotate 270 -geometry "1024>x1024>" -quality 90 $NOME$NOINICIAL.jpg
      NOINICIAL=$(expr $NOINICIAL + 1)
      $CONVERT $TEMP1.tif -crop 1136x1788+0+1852 -rotate 270  -geometry "1024>x1024>" -quality 90 $NOME$NOINICIAL.jpg
      NOINICIAL=$(expr $NOINICIAL + 1)
      $CONVERT $TEMP1.tif -crop 1136x1788+1345+1852 -rotate 270 -geometry "1024>x1024>" -quality 90 $NOME$NOINICIAL.jpg
      echo "Número de fotos digitalizadas até agora:" $NOINICIAL
      NOINICIAL=$(expr $NOINICIAL + 1)
# Apaga o arquivo temporario
      /bin/rm -f $TEMP1.tif
      read
done
#
# MSX r0x a lot!
Ricardo Jurczyk Pinheiro - Linux user #82838 - http://estudiodaintrospeccao.blogspot.com


Veja a relação completa dos artigos de Ricardo Jurczyk Pinheiro