Autore Topic: script per tagliare a metà scansioni a doppia facciata  (Letto 5323 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline puppylinux

  • Pastore tedesco
  • *****
  • Post: 1561
    • Mostra profilo
    • E-mail
script per tagliare a metà scansioni a doppia facciata
« il: Febbraio 24, 2011, 01:30:31 am »
i vecchi libri sono una mia passione e visito spesso i vari sii di biblioteche digitali

succede però che, per fare prima, alcuni scansionino i  libri a doppia facciata

come fare per tagliare queste immagini a metà così da ottenere pagine singole ed in maniera automatica?

la mia risposta è stata questo script (che funziona ottimamente)

#!/bin/sh
if [ ! -e even-odd ]; then mkdir even-odd; fi
first="`ls -1 *.jpg | head -n1`"
let "halfwidth=`gm identify -format '%w \n' "$first"`/2"
width="`gm identify -format '%w \n' "$first"`"
height="`gm identify -format '%h \n' "$first"`"
for FILE in *.jpg ; do gm convert -crop "$halfwidth"x"$height"+0+0 "$FILE" "$FILE-A.jpg" ; mv `ls *.jpg | grep A` even-odd ; gm convert -crop "$width"x"$height"+"$halfwidth"+0 "$FILE" "$FILE-B.jpg" && mv `ls *.jpg | grep B` even-odd
 done ;


che rileva in automatico le dimensioni delle scansioni a doppia facciata dalla prima immagine della serie, poi le taglia a metà, posponendo alle pagine dispari una A e alle pari una B, cosicché, il loro ordine di successione sia quello giunto (prima la dispari e poi la pari, e siccome A viene prima di B, l'ordinamento sarà quello giusto)

però così si è pur sempre costretti ad immettere manualmente l'0estensione del file, se si tratta di formati diversi dal jpg

ho allora cercato di far rilevare anche l'estensione dei file che ci si ritrova ad avere

implementandolo come variabile

ext="`ls | grep -e .bmp -e gif -e pbm -e .png -e pnm -e ppm -e tif -e tiff| head -n1 | cut -d . -f 2`"

se infatti avete in unacartella una o più immagini jpg, gif, png ecc... se digitate:

ext="`ls | grep -e .bmp -e gif -e pbm -e .png -e pnm -e ppm -e tif -e tiff| head -n1 | cut -d . -f 2`" && echo ".$ext

vi sarà restituita l'estensione a partire dal punto

ho altresì modificato la variable first:

first="`ls | grep '.bmp\|.gif\|.pbm\|.png\|.pnm\|.ppm\|.tif\|.tiff' | head -n1`"

o anche (con egrep)

first="`ls | egrep '(*.bmp|*.gif|*.jpg|*.png|*.tif|*.tiff)' | head -n1`"

per ottenere che data una lista di possibili estensioni (le più comuni per i formati grafici), venisse individuata la prima immagine della serie così da calcolarne poi le dimensioni

ma (e lo coloro in rosso per segnalare che mi dà errore) ci deve essere qualcosa che mi sfugge nell'ultima parte

#!/bin/sh
if [ ! -e even-odd ]; then mkdir even-odd; fi
first="`ls | grep '.bmp\|.gif\|.pbm\|.png\|.pnm\|.ppm\|.tif\|.tiff' | head -n1`"
ext="`ls | grep -e .bmp -e gif -e pbm -e .png -e pnm -e ppm -e tif -e tiff| head -n1`"
let "halfwidth=`gm identify -format '%w \n' "$first"`/2"
width="`gm identify -format '%w \n' "$first"`"
height="`gm identify -format '%h \n' "$first"`"
for FILE in "$ext" ; do gm convert -crop "$halfwidth"x"$height"+0+0 "$FILE" "$FILE-A"$ext"" && mv `ls "$ext" | grep A` even-odd ; gm convert -crop "$width"x"$height"+"$halfwidth"+0 "$FILE" "$FILE-B"$ext"" && mv `ls "$ext" | grep B` even-odd
 done ;
http://dokupuppylinux.info
dropbox 2GB di spazio gratuito per i tuoi file - http://db.tt/Vc6IeN4
rimpiazza.co.cc con .info per accedere ai programmi linkati sul mio sito

Offline Ash

  • medio cagnulin
  • ***
  • Post: 132
  • Woof Woof!
    • Mostra profilo
Re: script per tagliare a metà scansioni a doppia facciata
« Risposta #1 il: Febbraio 24, 2011, 08:38:56 am »
Ottimo!!!
Complimenti gran bella guida.... ;D ;D ;D
...Puppy Addicted...
Fare del bene porta altro bene....

Offline puppylinux

  • Pastore tedesco
  • *****
  • Post: 1561
    • Mostra profilo
    • E-mail
Re: script per tagliare a metà scansioni a doppia facciata
« Risposta #2 il: Febbraio 24, 2011, 01:13:27 pm »
lo script verde per ora va bene, l'unica seccatura, prima dell'uso è quello di sostituire l'estensione (se non si hanno immagini jpg) con quella con cui ci si trova ad operare

nel tentativo di automatizzare anche il riconoscimento dell'estensione devo aver combinato qualche casino (script in rosso) nell'ultima parte, che non riesco a individuare, usate lo script in verde per ora

funziona con graphicsmagick, ma se volete usarlo con imagemagick, basta eliminare tutte le occorrenze di gm nello script

graphicsmagick e imagemagick li trovate su dokupuppylinux (vedi firma)
http://dokupuppylinux.info
dropbox 2GB di spazio gratuito per i tuoi file - http://db.tt/Vc6IeN4
rimpiazza.co.cc con .info per accedere ai programmi linkati sul mio sito

Offline Ash

  • medio cagnulin
  • ***
  • Post: 132
  • Woof Woof!
    • Mostra profilo
Re: script per tagliare a metà scansioni a doppia facciata
« Risposta #3 il: Febbraio 24, 2011, 01:47:05 pm »
Purtroppo non l'ho ancora provato e di bash scripting non ne so molto...
Farò dei test per vedere come va... ;)
...Puppy Addicted...
Fare del bene porta altro bene....

 

Iscriviti alla newsletter

Ricevi le notizie più importanti direttamente nella tua casella email (premi invio dopo l'indirizzo)