Warning: Undefined array key "rcommentid" in /membri/ompolicy/wp-content/plugins/wp-recaptcha/recaptcha.php on line 481

Warning: Undefined array key "rchash" in /membri/ompolicy/wp-content/plugins/wp-recaptcha/recaptcha.php on line 482

Il magick bug e il segmentato fausto

Tutti voi certamente(ripongo fiducia)avrete in deposito un qualche “caso dispendioso”.
L’urgenza di convertire immagini in formato piùchetestuale, ad esempio in un pdf.
Saprete d’altronde che esiste un fantastico software(direi più una suite di script)che permette di usufruire del fantastico comando convert, del quale vengono decantate imprese eroiche(pare abbia convertito anche il papa da un primordiale satanismo).

Ecco. Siffatto comando non fa quello che deve su karmic.
Mi spiego meglio(o meglio mi spiego).

Lanciando da terminale un comando del genere:

convert *.jpg output.pdf

Se ne riceve un bel Segmentation Fault (oltre all’utilizzo spaventoso di risorse di memoria(quasi del 90%))
Girovagando un pò in rete ho appurato che la versione rilasciata per karmic è iperbuggata (si parla della 6.5.1 , verificate con convert -version).

Quindi se volete un ImageMagick che funzioni come si deve. la soluzione più ovvia è quella di compilarselo da sorgente.

Bene. Terminale alla mano

wget http://image_magick.veidrodis.com/image_magick/ImageMagick-6.5.9-3.tar.bz2
tar -xf ImageMagick-6.5.9-3.tar.bz2
cd ImageMagick-6.5.9-3
sudo apt-get install build-essential libmagickcore-dev libmagickwand-dev libperl-dev
./configure –prefix=/usr
make
sudo make install

Sciocchezzuola insomma.. Se riscontrate problemi durante la compilazione, segnalatelo, è facile che abbia dimenticato qualche dipendenza..

Per verificare la corretta installazione della nuova versione, proviamo a lanciare di nuovo convert -version. Questa volta l’output dovrebbe essere:

Version: ImageMagick 6.5.9-3 2010-02-10 Q16 http://www.imagemagick.org

Se voleste disinstallare il nuovo magick, basta recarsi tramite terminale nella cartella sorgente e digitare sudo make uninstall. In quel caso consiglio vivamente di reinstallare i pacchetti forniti dal repository.

Perfetto. Ora rilanciando lo stesso comando di conversione (e magari aggiungendoci qualche chicca in più) noteremo che, dopo spaventose operazioni algoritmiche (in effetti sarebbe da analizzare questo spreco di risorse..), avremo finalmente l’output desiderato.

convert -page A4 -quality 99 -compress jpeg *.jpg output.pdf

Una nota a demerito della conversione è la perdita di qualità di immagine visibile a occhio. Il modo più palese per mantenere la qualità sarebbe la stampa su file, se non fosse che all’aumentare dei file aumenta in maniera esponenziale anche la dimensione totale dell’output (di un buon 60%).

Un’altra corrente di pensiero trova più comodo (e forse meno dispendioso) il procedimento in due passaggi (sempre passanti per il convert): *.jpg-to-*.pdf , *.pdf-to-output.pdf. Questo grazie all’utilizzo di un altro potente software: pdftk.

sudo apt-get install pdftk
for i in *.jpg; do cat $i `basename $i .jpg`.pdf; done
pdftk *.pdf cat output merged.pdf

Altra alternativa (poco valida) è la creazione di singoli pdf non assemblabili. Un metodo veloce, efficace, che preserva la qualità (poichè non opera una conversione dati), ma che non consiglio per un input file elevato.

for i in *.jpg; do cat $i > $i.pdf; done

A voi la scelta.

C,.

Leave a comment

Your comment


Warning: Undefined variable $user_ID in /membri/ompolicy/wp-content/themes/japan-style/comments.php on line 67


Warning: Undefined array key "rerror" in /membri/ompolicy/wp-content/plugins/wp-recaptcha/recaptcha.php on line 401