Voglio convertire un insieme di immagini in un unico file pdf. Ho usato imagemagick, ed ho constatato che per creare un file di 10 MB ci impiega un'eternità. Succede solo a me, oppure è proprio lento? Consigli?

chiesto 05 Mag '16, 19:19

Anto's gravatar image

Anto
17941823

modificato 05 Mag '16, 19:19

Quante immagini sono e quanto sono grosse? Quanta RAM hai e che processore?

(05 Mag '16, 19:59) dadexix86 ♦♦ dadexix86's gravatar image

2xIntel Pentium 2.80 Ghz, Ram 1 Giga. Le immagini sono 1400x1910, e ne sono 98.

(05 Mag '16, 20:21) Anto Anto's gravatar image

png. Ok, lo farò, cmq ho letto altri forum nei quali si lamentava lo stesso problema, e dove si proponeva la disabilitazione di openmp, ma non ho capito come si effettua tale operazione. Tra l'altro, su un sito internet me le ha convertite in poco tempo...

(05 Mag '16, 20:57) Anto Anto's gravatar image

Un sito internet non te lo fa in locale, lo fa su un server con decine e decine di GB di RAM ;)

(05 Mag '16, 21:15) dadexix86 ♦♦ dadexix86's gravatar image

Ma non cè un altro programma o metodo per convertire più immagini in pdf?

(05 Mag '16, 21:32) Anto Anto's gravatar image

Sì, le puoi tipo aprire tutte con Writer in un unico file e poi lo esporti in PDF, o lo puoi fare tramite Gimp, o molto altri.
Ma in genere Imagemagick è il più veloce (perché non consuma RAM per mostrare un'interfaccia grafica che in questo caso è inutile) :)

(05 Mag '16, 21:38) dadexix86 ♦♦ dadexix86's gravatar image

Si, cmq utlizza quasi 850 MB di RAM quando eseguo la conversione, però non ci ha impiegato molto tempo (col pc da un 1 GB di RAM), cosa che invece è accaduta con l'altro pc (che ha solo 512 di RAM). Ma con le immagini jpg utilizza meno RAM o è uguale? Grazie per le info. Senti ma si possono diminuire le dimensioni delle immagini con imagemagick?

(05 Mag '16, 22:01) Anto Anto's gravatar image

JPG ha meno qualità di PNG o TIFF, quindi le immagini contengono meno dati e sono più piccole. Quindi in teoria occupa meno memoria.

Sì, con imagemagick puoi fare tutto quello che vuoi sulle immagini.

(05 Mag '16, 22:09) dadexix86 ♦♦ dadexix86's gravatar image

Ultima domanda: se voglio diminuire le dimensioni da 1400x1900 a 500x769 quale comando devo lanciare? Anzi se voglio che non superi una certa dimensione in termini di Byte.

(05 Mag '16, 22:14) Anto Anto's gravatar image

resize :)

Ti consiglio di avere sempre sottomano il manuale e un set di immagini su cui fare le prove prima di modificare gli originali! :)

(05 Mag '16, 22:18) dadexix86 ♦♦ dadexix86's gravatar image

Ok, grazie per gli input. P.S. Se vuoi, come risposta puoi inserire la parte in cui parli della RAM che swappa.

(05 Mag '16, 22:33) Anto Anto's gravatar image

Fatto , grazie!

(05 Mag '16, 22:54) dadexix86 ♦♦ dadexix86's gravatar image

Con così poca RAM, secondo me semplicemente si riempie, inizia a swappare e rallenta il processo. Potresti monitorare l'utilizzo delle risorse tramite top, per vedere quanta RAM ti occupa.

coll. permanente

ha risposto 05 Mag '16, 20:40

dadexix86's gravatar image

dadexix86 ♦♦
16.9k816161

modificato 05 Mag '16, 22:54

Ho notato una cosa (che non mi piace molto): che, pur diminuendo le dimensioni delle immagini, quelle convertite sono più grandi in termini di bytes rispetto agli originali.

(05 Mag '16, 22:59) Anto Anto's gravatar image

Quello è causato dalla qualità. JPG riduce la qualità per aumentare la compressione, e di default imagemagick usa il 100% di qualità (ovviamente), quindi devi ridurre la qualità per ridurne il peso finale.

(06 Mag '16, 09:53) dadexix86 ♦♦ dadexix86's gravatar image

Devo specificare che, quando diminuisco le dimensioni delle immagini, le jpg diminuiscono in termini di bytes, mentre i le png aumentano. Il comando per ridurre la qualità è "-quality"? Ma scusa, se volessi lasciare la qualità inalterata di tutte le immagini, senza ridurre le dimensioni?

(06 Mag '16, 10:15) Anto Anto's gravatar image

Il problema è che non esiste un valore nelle immagini che ti dica che qualità hanno, che il programma possa leggere.

Per dirla breve, le immagini di tipo non vettoriale (tipo png, jpg, ecc.) sono solo un elenco di pixel.

La qualità dell'immagine dipende da quanti colori ci sono nell'immagine finale e dalla definizione. L'algoritmo di compressione jpg prende l'immagine attuale e ne modifica i colori e la definizione (lasciando inalterato il numero dei pixel finale), in base alla percentuale di qualità che tu scegli (0% l'immagine fa schifo, 100% l'immagine è enorme). [...]

(06 Mag '16, 10:30) dadexix86 ♦♦ dadexix86's gravatar image

Ma una volta che l'hai prodotta, l'immagine è solo un elenco di pixel; non ci sono più tutte le informazioni usate dall'algoritmo di compressione in fase di scrittura, quindi è impossibile "tornare indietro", così come è impossibile capire quale fosse la qualità con cui l'immagine è stata prodotta (se ad esempio applichi due volte l'algoritmo al 50%, ottieni un'immagine che è al 75% di quella originale, ma tu potresti essere partito da quella intermedia e semplicemente quella da cui sei partito faceva già schifo. Come fa il programma a saperlo?)

Un buon compromesso in genere è il 95%.

(06 Mag '16, 10:33) dadexix86 ♦♦ dadexix86's gravatar image

Si, ma io senza utilizzare il comando "-resize" (anche per modificare la qualità si usa "-resize", giusto?) ottengo immagini che pesano 84 MB dai 10 MB di quelle originali!!! E, cmq, impostando la qualità al 50%, l'output è un file di 23 MB. Per questo ci impiega un pò di tempo a convertire. Cioé, io vorrei come output un file che abbia più o meno le stesse dimensioni del tot. di quelle originali, e con una qualità accettabile.

(06 Mag '16, 10:46) Anto Anto's gravatar image

No, con resize diminuisci la dimensione, non la qualità.

Se carichi da qualche parte una immagine di partenza e dici cosa vuoi ottenere in uscita magari posso provare ad aiutarti più seriamente.

Nota anche che se il tuo problema è unicamente il peso dell'immagine potresti utilizzare il parametro -strip, che la libera da tutta una serie di dati accessori di cui magari non ti fai nulla (profilo colore, dati exif, dati raw, eventuali tiff incorporate, ecc) - Fonte

(06 Mag '16, 11:17) dadexix86 ♦♦ dadexix86's gravatar image

Ok, per modificare la qualità uso il comando "-quality", mentre per modificare le dimensioni uso "-resize", sia che scriva dopo "numxnum", sia che scriva dopo "percentuale %". A parte questo, facciamo che voglio come output un file pdf che contenga questa immagine: https://drive.google.com/file/d/0B1ep94Ss7aH5cUUyY3ZOelkxZTg/view?pref=2&pli=1 (scarichi sul tasto sopra) Il pdf deve essere di peso in bytes non troppo distante da quello del file originario; la qualità dell'immagine deve essere accettabile e le dimensioni non troppo dissimili dal file png. Quale comando dare sul terminale?

(06 Mag '16, 11:49) Anto Anto's gravatar image

Eh, sarebbe bello! Purtroppo con PDF non funziona così. Quanto sopra vale solo per immagini (jpeg, png).

PDF ha degli standard diversi ed è un documento di testo. Un PDF di immagini peserà sempre più che le immagini singole (perché quello che fa è impostare un documento di testo con dentro l'immagine, con tutte le necessità del caso, tra cui margini, colori, palette, ecc).

(06 Mag '16, 12:02) dadexix86 ♦♦ dadexix86's gravatar image

E scusa, perché su internet riesco ad ottenere un pdf del genere? Va bene, allora ti chiedo questo: convertire con imagemagick la stessa immagine, ma in formato png con peso in bytes non troppo distante da quello del file originario, con qualità dell'immagine accettabile e con dimensioni non troppo dissimili dal file png. Scommettiamo che l'output è sempre maggiore rispetto all'originario?

(06 Mag '16, 12:06) Anto Anto's gravatar image

Tipo

 convert 3.png -compress jpeg -quality 50% 3-1.png
 ls -l 3.png 3-1.png
(06 Mag '16, 12:10) dadexix86 ♦♦ dadexix86's gravatar image

Ok, buono la grandezza è leggermente più grande, anche se hai diminuito la qualità al 50%. Per quanto riguarda il pdf, ho letto che "pdftk" lo comprime. Lo conosci? Ah, una cosa: cosa fa il comando "ls -l"?

(06 Mag '16, 12:20) Anto Anto's gravatar image

No, non l'ho mai usato...

(06 Mag '16, 12:24) dadexix86 ♦♦ dadexix86's gravatar image

Lo sai che lanciando semplicemente "convert 3.png 3-1.png" viene un file più piccolo, così come quando voglio tramutarlo in pdf? Mah, non mi convince. Alla fine credo di optare per questa soluzione: anziché convertire l'immagine, la comprimo in formato cbz, in quanto questo formato è leggibile dal visualizzatore di documenti "evince" (anche se chi lo apre da windows, per leggerne il contenuto deve rinominare il file e decomprimerlo...).

(06 Mag '16, 12:55) Anto Anto's gravatar image

Mah, nemmeno a me convince :S non vedo perché dovrebbe essere più piccola...

(06 Mag '16, 14:25) dadexix86 ♦♦ dadexix86's gravatar image

Cmq, ho trovato la soluzione: "convert -compress fax -quality 100 -units PixelsPerInch -density 72x72 immagini.png file.pdf" e poi "gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compresso.pdf file.pdf"

(11 Mag '16, 18:09) Anto Anto's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×2

domanda posta: 05 Mag '16, 19:19

domanda visualizzata: 622 volte

ultimo aggiornamento: 11 Mag '16, 18:10

Domande correlate

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.