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 \;

Convertire PDF in JPG con Ubuntu


Vediamo come convertire agevolmente un file pdf in jpg con Ubuntu:
Ubuntu ha di default il pacchetto imagemagick preinstallato, ci servirà per poter convertire il nostro pdf:

  1. Apriamo il terminale e andiamo nella directory dove è presente il nostro .pdf
  2. Diamo il comando:
    convert -density 300 nomefile.pdf nomefilechevogliamo.jpg
Il valore 300 dopo -density indica i DPI che vogliamo per la nostra immagine, se non lo specifichiamo il valore di default è 72;
Nel caso il pdf sia di più pagine il comando convertirà tutte le pagine salvandole con nomefile-1.jpg, nomefile-2.jpg, ecc..