"Voglio cambiare DPI con Imagemagick senza cambiare la dimensione effettiva dei byte dei dati dell'immagine."
Questo è completamente impossibile!
Perché:
more "Dots per Inch"
<==> more pixels per area
<==> more total pixels per image
<==> more total bytes per image
Inoltre non sembra capire quale DPI sia in realtà:
- È un valore completamente astratto che ottiene valore pratico solo nel contesto della conoscenza anche della dimensione assoluta della stampa o del rendering su schermo o monitor:
- Puoi 'stampare' la stessa immagine di 72x72 pixel su un quadrato largo 1 pollice: la stampa avrà una risoluzione di
72dpi
.
- Puoi 'stamparlo' anche su un quadrato largo 1/4 di pollice: quindi la stampa avrà una risoluzione di
288dpi
.
- ( Nota: se lo 'stampi'
288dpi
su un quadrato da 1 pollice, non è più la stessa immagine: avrà subito qualche estrapolazione attraverso il driver della stampante o qualche altro meccanismo di filtraggio e sarà diventata un'immagine di 288x288 pixel anziché un'immagine di 72x72 pixel ... )
- Entrambe le stampe avranno le stesse informazioni sull'immagine - l'immagine a 288 dpi non ne avrà improvvisamente di più.
Se vuoi stampare l'immagine originale di 72x72 pixel come un quadrato largo 1 pollice, ma a 288dpi
, dovrai ridimensionare l'immagine (in questo caso ridimensionandola). Per ogni 1 pixel nell'originale sono necessari 4 pixel della nuova immagine ingrandita. Ora ci sono diversi algoritmi che possono essere utilizzati per calcolare quali valori di colore dovrebbero avere questi 4 pixel (3 dei quali nuovi pixel):
- potresti dare loro lo stesso pixel originale (che è un algoritmo molto "grezzo",
- oppure potresti fare una media del valore di colore del pixel originale con i valori di colore dei pixel vicini.
In ogni caso stai creando un'immagine più grande composta da 288 righe di pixel alte 288 pixel ciascuna (288x288 pixel).
Cosa fa Gimp per te quando passi da "Immagine -> Dimensione stampa": semplifica il processo di ricalcolo delle modifiche richieste in dimensioni assolute dei pixel, rendendolo più facile da usare. Per questo scopo...
- ... ti chiede prima del DPI perché una determinata stampante non può cambiare arbitrariamente la sua risoluzione di stampa (alcune possono offrire non solo una, ma forse anche 2 o 3 risoluzioni diverse). Quindi ti chiede a quale risoluzione vuoi stampare. Questa è la prima informazione.
- ... quindi chiede anche il secondo pezzo: a quale formato (in
cm
, mm
o inch
) la stampa dovrebbe apparire sulla carta.
Secondo queste due informazioni, Gimp calcola quindi il numero totale di pixel che deve usare (estrapolare dal numero originale di pixel) per riempire lo spazio richiesto alla risoluzione richiesta.
Tuttavia, il ridimensionamento di un'immagine raster facendola contenere più pixel non aggiunge informazioni reali ad essa e aggiunge solo "qualità" a ciò che è fittizio. Può sembrare più bello per l'occhio umano se il tuo algoritmo di ingrandimento è "buono". E sembrerà brutto se raddoppiate, triplicate o quadruplicate i pixel esistenti, come fanno alcuni semplici algoritmi.
Per le immagini raster,
l'impostazione DPI è rilevante solo nel contesto della stampa o della visualizzazione . Perché stampanti o monitor hanno dato risoluzioni fisse. Pertanto sono informazioni che solo ...
- ... un driver della stampante o
- ... un'applicazione di elaborazione delle immagini che supporta la stampa
bisogno di sapere.
E la documentazione di ImageMagick è in pieno accordo con me:
-density width
-density widthxheight
Imposta la risoluzione orizzontale e verticale di un'immagine per il rendering su dispositivi.
Per immagini vettoriali o formati di file
(come PDF o PostScript), l'impostazione DPI è tuttavia estremamente importante nel contesto dellaloro rasterizzazione . Un DPI più elevato trasferirà più informazioni sull'immagine nel formato raster e quindi preserverà più dettagli dalla reale qualità originale. Quando si converte un'immagine vettoriale di una data dimensione dimm
,cm
oinch
in raster con un più alto DPI sarà direttamente traduce in un maggior numero di pixel totali nell'immagine.
Inoltre, ImageMagick non supporta la "stampa" in quanto tale. Invece, solo ImageMagick ...
- ... converte i file da un determinato formato raster in altri formati raster;
- ... oppure ridimensiona o ingrandisce le immagini raster;
- ... oppure cambia i valori di colore secondo un algoritmo specifico;
- ... oppure ritaglia immagini, le sovrappone, le inverte, le riflette;
- ... e cosa no ....
... ma per stampare le immagini manipolate, è necessario utilizzare un programma diverso.
Alcuni formati di immagine (TIFF, PNG, ...) supportano la memorizzazione interna di un'impostazione DPI nei loro metadati.
Ma questo non è altro che un attributo 'suggerimento' che non altera l'immagine raster sottostante. Questo è il motivo per cui hai fatto questa scoperta:
"Quando controllo il file rimane lo stesso."
Questo "suggerimento" può essere valutato automaticamente dai driver della stampante o dai programmi di creazione di pagine come LaTeX. In assenza di tali 'suggerimenti' DPI (o se in qualche modo non si presentano nel modo in cui LaTeX si aspetta che facciano), LaTeX dovrebbe comunque essere in grado di comandare di eseguire il rendering di una determinata immagine su una pagina come ci si aspetta a - ha bisogno solo di un codice LaTeX più esplicito attorno all'immagine!
Alcuni altri formati di immagine (JPEG (?), BMP, ...) non supportano nemmeno la memorizzazione di un suggerimento DPI nei loro metadati interni.
Quindi Gimp supporta solo ciò che vedi che sta facendo con "Immagine -> Dimensione di stampa" perché vuole stampare un'immagine. Con ImageMagick non è possibile stampare.
Continua a fare quello che vuoi fare con Gimp durante la stampa. Non ha senso con ImageMagick.
Vedi anche questo ulteriore frammento di documentazione IM , che spiega lo stesso argomento in parole diverse.
Quindi ciò che rimane è questo:
- Se "manipoli" la tua immagine con Gimp e poi incorpori il risultato in LaTeX, la pagina sembra come te l'aspetti.
- Se 'manipoli' la tua immagine con ImageMagick e poi incorpori il risultato in LaTeX, la pagina non sembra come ti aspetti.
Fornisci quanto segue per risolvere il problema sopra riportato:
- la versione esatta dell'installazione di ImageMagick (output completo di
convert -version
e convert -list configure
);
- (un collegamento a) un'immagine di esempio originale;
- (un collegamento alla) stessa immagine manipolata da Gimp;
- (un collegamento alla) stessa immagine manipolata da ImageMagick.
In questo modo possiamo aiutare a risolvere il problema.
Ma nota: questo è un problema diverso da quello che il tuo soggetto / titolo attuale chiede: "Voglio cambiare DPI con Imagemagick senza cambiare l'effettiva dimensione in byte dei dati dell'immagine"
Aggiornare
Dal momento che non è ancora chiaro ad alcuni lettori ciò che ho notato sopra, ecco un altro tentativo ...
Qualunque cosa si noti come "Risoluzione" o "Densità" all'interno di un file di immagine, è un attributo di metadati . Non ha alcuna influenza sul numero di pixel effettivi descritti dal file ed è completamente irrilevante al riguardo. È solo un suggerimento che un dispositivo di stampa o rendering o un'applicazione possono seguire o meno durante la stampa, il rendering o la visualizzazione dell'immagine.
A tal fine, è solo un numero memorizzato nel file di immagine. Questi numeri indicano i dispositivi di output come le stampanti e mostrano il numero di punti (o pixel) per pollice in cui deve essere visualizzata l'immagine. Per formati vettoriali come PostScript, PDF, MWF e SVG indica alla scala di pixel di disegnare tutte le coordinate del mondo reale utilizzate dall'immagine.
Un esempio, in cui il valore di risoluzione annotato da ImageMagick all'interno dei metadati dell'immagine NON è onorato da un'applicazione è Adobe Photoshop. Photoshop memorizza i suoi suggerimenti su una risoluzione di stampa o di visualizzazione desiderata in un profilo proprietario denominato 8bim . ImageMagick non tocca questo profilo, anche quando viene chiesto di scrivere una modifica di risoluzione nei metadati di un file di immagine. Photoshop d'altra parte, ignorerà tutti i suggerimenti di risoluzione memorizzati da ImageMagick nel campo dei metadati altrimenti standard definito a questo scopo non appena vede il proprio profilo 8bim .
Il PO avrebbe dovuto scegliere la rubrica:
- "Voglio cambiare DPI (suggerimento per la risoluzione dei metadati) con ImageMagick senza cambiare il numero effettivo di pixel nell'immagine"
al fine di evitare tutti i malintesi ...
^
icona a sinistra della sua risposta), non solo di "accettarla" non appena hai abbastanza reputazione personale (penso che tu abbia bisogno di +15) ...