Come posso comprimere le immagini?


25

Ho 5.000 immagini che devo comprimere (per visualizzarle sul mio sito Web).

Sono nuovo di Ubuntu. Quindi cosa devo fare?



@MostafaAhangarha: non duplicato. Per favore leggi la mia risposta askubuntu.com/a/781588/9598 e riconsidera il tuo voto per non chiudere questa domanda. È buono. Grazie!
Geppettvs D'Constanzo,

Risposte:


21

Uso Trimage super semplice da usare.

aggiungi solo l'immagine e comprime per installare:

sudo apt-get install trimage

inserisci qui la descrizione dell'immagine


2
Non vedo alcuna impostazione in base alla quale posso definire quanto mi piacerebbe comprimerlo, dimensione del file, ecc.
Rico,

46

La parola "compressione" sembra essere interpretata male in questa domanda, ma è ancora valida a seconda del contesto in cui si desidera vederlo.

Lo scenario

Diciamo che i web designer, gli sviluppatori Web e / o i webmaster devono "comprimere" i nostri file di immagine per renderli sufficientemente "leggeri" per essere caricati rapidamente nel nostro hosting se stiamo lavorando direttamente su un vero ambiente di produzione. Ciò non influirà se stessimo lavorando in un ambiente di produzione di test locale.

Molte delle risposte sembrano riferirsi ad altre cose, causate principalmente a causa di - probabilmente - non hanno affrontato un simile scenario. Ecco perché inizio a spiegarlo.

Così. Comprendiamo cosa deve risolvere la risposta:

  1. L'immagine DEVE essere leggera
  2. L'immagine DEVE essere "compressa" per perdere le dimensioni del file ma non "rezizzata" come riferito da un altro utente che ha indicato un duplicato su questa domanda compressione e rinominazione batch JPG (trova -exec, xargs, piping?)
  3. Le immagini devono essere compresse in batch, preferibilmente tramite una GUI.

Immagine leggera

Per prima cosa capiamo quale dovrebbe essere un '"immagine leggera".

Le immagini ad alta definizione, con risoluzioni superiori a 1024 px, possono avere file di grandi dimensioni. Fornisco un esempio in questo screenshot:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Nella finestra delle proprietà del file possiamo vedere che si tratta di un file da 9,5 MB, che ritarderà molto il caricamento e ritarderà molto al fine di renderizzare sullo schermo quando viene pubblicato su un sito Web.

Tuttavia, la dimensione dell'immagine e la risoluzione della griglia sono davvero utili per una stampa ad alta definizione. Quindi questo è uno scenario diverso che non tratterò in questa spiegazione.

Quindi, come posso usare questa immagine in un sito Web, senza aspettare anni per caricare e aspettare qualche altro anno per mostrarla sul mio sito?

Il file deve essere compresso.

E quando parliamo di "compressione", dobbiamo esplicitamente cambiare la sua qualità per renderla utilizzabile per il caso che stiamo affrontando.

Quindi, lasciamo cadere il prossimo in un terminale:

convert seminario-tabloide.png test.jpg

Questo sta per convertire il formato PNG ad alta definizione in un formato JPG "compresso", che di per sé è un file più piccolo! Va da 9,5 MB a 2,4 MB.

inserisci qui la descrizione dell'immagine

Eppure grande?

Ma 2,4 MB ha ancora una dimensione di file grande. Ora giochiamo con alcuni altri comandi di conversione di ImageMagick per creare file di dimensioni inferiori:

convert test.jpg -quality 50% test-50p.jpg

Questo è ciò che dobbiamo fare per "comprimere" un'immagine. Ciò ridurrà la qualità dell'immagine del 50% e fornirà una dimensione di file di 938,4 KB <=== (Nota: KILOBYTES, nemmeno un Megabyte).

Possiamo andare oltre e creare file di dimensioni inferiori regolando la percentuale nello stesso comando tramite:

convert test.jpg -quality 30% test-30p.jpg

Tieni presente che in questo esempio stiamo riducendo la qualità del file, non le dimensioni dell'immagine. Ciò si tradurrà in un file compresso che non viene influenzato visivamente quando viene visualizzato sullo schermo, ma vedrai i manufatti quando si stampa in un formato carta grande (più grande della lettera).

Ridimensionamento + compressione = Super Cool!

Adesso. Possiamo fare una cosa diversa. Un paio di cose in effetti: possiamo prima ridimensionare le immagini e applicare successivamente la compressione, il che si tradurrà in una dimensione del file inferiore rispetto all'originale e fornirà un'immagine utile per il rendering sullo schermo, non così buono per la stampa ma sembra che noi è necessario visualizzarlo sullo schermo e non in uno striscione stampato, giusto?

Quindi facciamolo:

convert seminario-tabloide.png -resize 1024x test-1024x.jpg

Con questa istruzione, chiediamo che l'immagine venga ridimensionata con una larghezza di 1024 pixel per qualsiasi quantità di pixel necessaria per non perdere le proporzioni.

Ora ... indovina un po '?

La dimensione del file è stata ridotta da 9,5 MB a ... (musica suspense con congas per favore) 433,7 KILOBYTES

Se desideriamo comprimere al massimo un file compresso massimo come questo, dovremo affrontare alcuni dati generali inseriti nel file e risulterà in una dimensione del file più grande. Quindi non ti suggerirò di provare, ma se ti aspetti che io faccia l'esempio, ok ... Eccoci!

convert test-1024x.jpg -quality 50% test-1024x-50p.jpg

E siamo passati da 433,7 KB a 176,2 KB in un solo comando. Questo esempio ha avuto esito positivo, tuttavia non aspettatevi che alcun esercizio dia luogo a file di dimensioni inferiori. Ma puoi divertirti molto quando esegui questo tipo di esercizi.

Processo batch

Oh! Ma quasi dimentico una delle esigenze: applicare questo processo a molte immagini con facilità.

Per tale cosa possiamo farlo con due processi.

Il terminale

Questo è più veloce e più facile. Quindi diciamo al terminale che dobbiamo eseguire le stesse istruzioni in tutti i file in una directory, dopo di che spiegherò altre istruzioni.

Converti tutto in 1024px (puoi usare qualsiasi quantità di pixel)

for i in *; do convert $i -resize 1024x $i-1024x.jpg; done;

Qui chiediamo al comando di eseguire le stesse istruzioni per tutti i file in una directory, applicare la trasformazione e rilasciare una copia con un nome diverso per rendere più semplice la selezione.

Riduci la qualità in percentuale (usa qualsiasi percentuale che desideri) a tutte le immagini in una directory:

for i in *-1024x.jpg; do convert $i -quality 50% $i-50p.jpg; done;

Qui stiamo chiedendo di ridurre la qualità delle immagini ridimensionate per ridurne le dimensioni.

Puoi giocare con questi comandi e vedere i tuoi risultati. Dopo un paio d'ore divertendoti sarai un esperto.

Script Nautilus

Il 20 aprile 2015 ho dovuto affrontare una situazione del genere, quindi ho dovuto fare delle ricerche e chiedere aiuto su una domanda. Ecco perché ora ne so molto. Non pensare di essere nato con questa conoscenza, amico.

Se non sei abituato ai terminali e / o desideri utilizzare una GUI per scegliere semplicemente i tuoi gruppi di file e applicare le trasformazioni, puoi creare il tuo Script azioni Nautilus per fare semplicemente clic con il pulsante destro del mouse sul gruppo di file e scegliere un'opzione dal menu contestuale.

Per istruzioni su come eseguire questa operazione, leggi qui la domanda, la risposta e i commenti: Come elaborare in batch le immagini JPG per modificarne la qualità con Nautilus-Actions?

In bocca al lupo!


1
Questa è la risposta "insegnami a pescare". convertLe abilità della riga di comando di ImageMagick sono eccezionali.
Charney Kaye,

Solido! Ho usato l' editor di testo Sublime Text in modalità multi-cursore per cambiare rapidamente un gruppo di comandi contemporaneamente per una compressione "batch" di un gruppo di foto. Ho appena usato il convert photo.jpg -quality 70% photo_compressed.jpgformato del comando e ha funzionato alla grande! Anche impostando la compressione su solo il 70% della qualità originale, la dimensione della foto è stata ridotta a ~ 37% dell'originale, poiché l'effetto viene ingrandito trovandosi su entrambi gli assi xey.
Gabriel Staples,

Fantastica spiegazione di concetti così spesso fraintesi. Per completezza, lasciatemi aggiungere che per l'elaborazione in batch è anche possibile utilizzare il mogrify di ImageMagick anziché convertirlo in cui creo una cartella per contenere i risultati, quindi solo elaborare in quella cartella che mantiene anche le cose organizzate. Ad esempiomogrify -resize 1600 -path dir_name -format JPG -quality 90 *.tif
Dennis il

0

Se ti riferisci alle immagini jpeg, la compressione di fatto non è possibile. Poiché jpeg è per definizione un formato di file compresso (tutti i pixel di rumore e inutili sono già stati rimossi). Puoi comprimerli bene, ma le dimensioni totali rimarranno più o meno le stesse. L'unico algoritmo di compressione avanzato che conosco per jpegs è zipx. Ma zipx è di proprietà di Winzip e garantisce un max. taglia ridotta del 30% (in modalità archivio zipx).

Per visualizzare le tue immagini sul Web, devi prima ridimensionarle (meno di 1 MB per ciascuna) e facoltativamente convertirle in formato file png. PNG (= grafica di rete portatile) è appositamente ottimizzato per un trasferimento Web più veloce e una visualizzazione più rapida. Gli utenti esperti possono persino convertire quelle immagini in formato webp (formato Google per immagini, algoritmo di caricamento più veloce).

Puoi convertire in batch le immagini con XnConvert, quindi ridimensionare in batch le tue immagini con XnView. Scarica il pacchetto deb da qui: http://www.xnview.com/de/xnviewmp/#downloads , quindi fai clic con il pulsante destro del mouse su di esso e aprilo con Gnome Software.

Se non ti interessa la velocità di caricamento della rete, ma ti preoccupi della qualità, dovresti mantenere intatte le tue immagini e creare una libreria digitale per loro. Forse caricarli su un server pubblico (Yahoo, Google, ecc.).


3
Potresti voler menzionare le varie opzioni per la compressione / qualità jpeg; è del tutto possibile ridurre la dimensione del file di un'immagine jpeg aumentandone la compressione (e quindi riducendo la sua qualità).
Nick Weinberg,

1
La mia comprensione della compressione significa eliminare i pixel non necessari mantenendo la stessa qualità. Ridurre la qualità non è compressione ma solo ridimensionamento o down-sampling. La compressione senza perdita è possibile utilizzando il formato zipx che funziona alla grande con le foto a raffica. Crea una sorta di pila sovrapposta / sovrapposta di foto simili in cui tutti i doppi pixel sono appiattiti su un livello separato, qualcosa di simile a un file .css in una pagina web. I pixel ripetuti sono definiti come entità separata all'interno dell'archivio.
ipse liuto
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.