venerdì 12 marzo 2010

Dividere una immagine in due con Ubuntu


Mi è capitato di avere tra le mani alcune scansioni in .jpg di un libro, ma ogni jpg era formato da due pagine attaccate, cosa che mi avrebbe dato parecchi problemi nel caso avessi voluto stamparli.
Mi serviva qualcosa che dividesse ogni immagine in due parti: una per la pagina destra e una per quella sinistra...
Ho risolto con imagemagick, potente tool che abbiamo già incluso in Ubuntu, e questo è il comando che fa al caso nostro:

convert nomefile.jpg -crop 1000 +repage +adjoin nomefile%02d.jpg

il comando -crop è quello che "taglia" la nostra immagine e il valore 1000 è la larghezza delle parti che vogliamo ottenere (supponendo che l'originale era largo 2000 px).

Nel caso le immagini da processare siano parecchie, per evitare che il pc esploda, possiamo ricorrere ad uno script che elabori i jpg uno dopo l'altro. Utilizzando il codice seguente facciamo creare allo script una cartella chiamata pagine dentro la quale vanno a finire le immagini processate:

mkdir pagine
find * -prune -name '*.jpg' \
-exec convert '{}' -crop 1000 +repage +adjoin pagine/'{}%02d'.jpg \;

4 commenti:

  1. c'è un modo per far si che metta la pagina a destra prima di quella a sinistra? Le scan di manga si leggono da destra a sinistra, quindi vengono invertite.

    RispondiElimina
  2. @Kon
    Guarda appena ho tempo ci lavoro su!

    RispondiElimina
  3. Ciao ho una domanda...sono nuovo del mondo linux e non capisco bene il secondo comando da terminale per croppare cartelle di immagini. Ti spiego...io ho un manga salvato nella cartella scaricati e le immagini sono salvate per esempio così: 1.jpg, 2.jpg, 3.jpg e via dicendo...Come dovrei impostare il comando? Scusa ma non so dove sbattere la testa..

    RispondiElimina