Qual è un buon programma per ridimensionare in batch 100.000 immagini jpg?


21

Il programma dovrebbe essere eseguito in modalità batch per ridimensionare tutti i file in una cartella e quindi salvare i nuovi file in un'altra cartella. Anche un'opzione per impostare la qualità jpg sarebbe ottima.


2
Una combinazione di find e ImageMagic.
mspasov,

Risposte:


30

Sono un po 'sorpreso che nessuno abbia menzionato l'opzione più semplice, economica e meno tecnica:

Automator

Innanzitutto, apri Automator, che si trova nella cartella Applicazioni.

Quindi, scegliere di creare un nuovo flusso di lavoro:

Creare un flusso di lavoro dell'automatore

Successivamente, aggiungi i seguenti passaggi al flusso di lavoro trascinandoli:

passaggi del flusso di lavoro

Quando esegui questo, Automator sta per:

  1. fai apparire una finestra che ti chiede di scegliere alcuni file (quanti ne vuoi)
  2. pop-up un'altra finestra che chiede dove si desidera salvare le copie ridimensionate
  3. chiederti quanto vuoi che siano grandi le copie ridimensionate. Sarai in grado di scegliere una dimensione fissa o una percentuale. Tutte le immagini verranno ridimensionate a quella dimensione o in base a quella percentuale.

(La casella di controllo "mostra questa azione durante l'esecuzione del flusso di lavoro" indica che il flusso di lavoro verrà messo in pausa, visualizzerà l'opzione e consentirà quindi di modificarlo)

Una volta che lo fai, Automator si agita e brucia, e quando ha finito ti emetterà un segnale acustico.

Sfortunatamente, non sembra avere un'opzione per scegliere la qualità JPEG. Tuttavia, per il prezzo (gratuito), è abbastanza conveniente.


Forse è il meno tecnico per qualcuno che non utilizza Terminal. E forse il più semplice, ma non è il più economico tra le risposte qui. Sips è incluso nella build Unix del Mac. E ImageMagick è anche gratuito.
markhunte,

3
È sicuro presumere che Automator sia, ai fini di questa discussione gratuita perché è ragionevole supporre che @mototribe stia eseguendo OS X. La mia unica preoccupazione sarebbe quanto bene Automator gestirà 100.000 immagini ma, supponendo che non siano tutte in una singola cartella, continuerei ad alimentarla una cartella alla volta fino a quando non è stata completata. Ho eseguito questo flusso di lavoro su centinaia di immagini senza difficoltà. Non vedo alcun motivo per cui non funzionerebbe contro molte migliaia, poiché ogni immagine viene spostata una alla volta, ma sarei fidato ma verificherei la modalità.
jaberg

Yep Automator ha fatto perfettamente il suo lavoro. Sono venuto qui pensando "Ho trovato un'utilità da riga di comando che ridimensionerebbe in batch le immagini" ... A volte la soluzione più semplice è anche la migliore. Saluti.
Silouane Gerin,

19

Mi piace usare ImageMagick. sipse Automator (che usa un identico metodo di ridimensionamento) rende le immagini troppo sfocate senza ulteriore nitidezza secondo me.

È possibile installare ImageMagick con brew install imagemagickdopo aver installato Homebrew o con sudo port install imagemagickdopo aver installato MacPorts . Quindi eseguire un comando come questo:

mogrify -filter lanczos2 -resize '500x500>' -format jpg -quality 90 -path /tmp/ *.jpg

500x500>rende le immagini più larghe o più alte di 500 px adattandosi a 500x500 px. 500xsarebbe sempre modificare la larghezza a 500 px e 500x500^renderebbe tutte le immagini di almeno 500x500px. -path /tmp/salva i file di output /tmp/invece di modificare i file in atto.

Lanczos2o il Lanczos a 2 lobi è molto simile a Catrom. Rispetto a Lanczos( Lanczos3), sono leggermente meno nitidi, producono meno artefatti da squillo e producono più motivi Moiré. Il filtro predefinito per ridurre le immagini è Triangle, che a mio avviso rende spesso le immagini troppo sfocate.

-quality 100crea file grandi circa il doppio -quality 95, che creano file grandi circa il doppio -quality 88.

Maggiori informazioni:

http://www.imagemagick.org/Usage/resize/
http://www.imagemagick.org/Usage/filter/
http://lri.me/shell1.txt

Ecco un comando simile che utilizza sips:

for f in *.jpg; do sips -Z 500 -s format jpeg -s formatOptions 80 "$f" /tmp/; done

-Z 500è come 500x500>in ImageMagick.

Se altri hanno meno di 100.000 immagini, puoi anche usare l'anteprima:

L'anteprima utilizzava lo stesso metodo di ridimensionamento di sipse Automator, ma ne ha utilizzato uno diverso dal 10.7. Preferisco però ImageMagick Lanczos2.

Ho caricato un confronto tra le varie opzioni su http://19a5b0.s3-website-us-west-2.amazonaws.com/imagemagick-osx-resizing/index.html .


1
Vorrei avvertirti di usare mogrify: questo converte i file sul posto, sovrascrivendo quelli originali! Se qualcosa va storto, hai perso i tuoi file! Migliore utilizzo convert(anche da ImageMagick).
Kurt Pfeifle,

1
@KurtPfeifle Non si specifica se si specifica l' -pathopzione (che al convertmomento non ha).
Lri,

Se stai andando per la velocità, allora sipsforse è la scelta migliore. In un test rapido con 1.000 JPG á ~ 5 MB il ridimensionamento a una larghezza di 800 px ha richiesto ~ 1 minuto. con sipse ~ 8 min. con mogrify(con i buffer del disco eliminati, usando GNU Parallel su un quadcore).
Stefan Schmidt,

13

ImageMagick è un programma di interfaccia a riga di comando e creato per questo scopo. L'uso e l'installazione di ImageMagick possono intimidire, ma questo pacchetto di manipolazione delle immagini è il più potente che abbia mai incontrato finora. Poiché l'installazione da sorgenti può essere una seccatura per gli utenti nativi di OS X, ti consiglio di usare Homebrew .

Per installare ImageMagick usando Homebrew esegui questo oneliner nel tuo terminale:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Homebrew è ora installato, è consigliabile seguire i suggerimenti dell'installatore dopo l'installazione. Ora installiamo ImageMagick usando brew.

brew install imagemagick

ImageMagick è ora installato e il suo convertprogramma può essere utilizzato per il tuo scopo. Per convertire una grande immagine jpg in una piccola immagine png che puoi eseguire

convert input.jpg -geometry 800x600 output.png

Per rispondere alla tua domanda "Come ridimensionare tutti i file in una cartella e salvarli in una cartella diversa" puoi eseguire il seguente script.

# create output dir
mkdir -p "../resized"

# Convert all .jpg files in the current folder
for image in *.jpg; do
    convert $x -geometry 800x600 resized/$x
done

ImageMagick può convertire oltre 100 diversi formati di immagine e quasi tutti i trucchi che puoi fare con Photoshop che puoi fare con ImageMagick.


grazie, è quello che ho finito per usare - tuttavia l'ho installato su Drupal poiché sto importando le immagini in Drupal.
Uwe

@the_karel, ho appena migliorato il tuo post precedente. Spero non ti dispiaccia.
Cugina Cocaina,

7

Diverse persone hanno menzionato ImageMagick. Ecco una ricetta: per semplicità, supponi che tutti i file siano in una cartella (e la cartella non contenga nient'altro). Aprire una finestra del terminale, cd in questa cartella, quindi eseguire

mkdir ../resized
for x in *.jpg; do convert -geometry 800x600 $x ../resized/$x

dove sostituisci l'800x600 con qualsiasi dimensione desideri.

I vantaggi includono una grande flessibilità in ImageMagick convert, come la possibilità di selezionare diverse impostazioni di qualità per l'immagine di destinazione o di impostare l'opzione di ridimensionamento in percentuale. Oppure puoi usare -geometry 800x800, nel qual caso le proporzioni verranno conservate, ma il massimo della larghezza e dell'altezza sarà di 800 pixel.

Gli svantaggi sono quelli ovvi: richiede una certa familiarità con la riga di comando, oltre alla volontà di esplorare le opzioni della riga di comando convertper le impostazioni desiderate. Questo non è un compito per i deboli di cuore.


4

I secondo GraphicConverter . Sono un utente registrato da 16 anni. Il suo scopo principale è l'elaborazione delle immagini in elaborazione batch e ha una buona interfaccia utente per la progettazione di flussi di lavoro personalizzati e il loro salvataggio.

Puoi anche usarlo insieme ad Automator, ma probabilmente non sarà necessario.

Ecco alcune informazioni dalla pagina di GraphicConverter che spiega le loro funzioni di modifica delle immagini di elaborazione batch .

Conversione in lotti con funzioni aggiuntive

GraphicConverter offre una sofisticata elaborazione batch che automatizza completamente le attività ripetitive applicate a una selezione di immagini:

  • Converti tutte le immagini sorgente selezionate facilmente e rapidamente in un nuovo formato, indipendentemente dal fatto che siano presenti 5 o 5.000 file di immagini; devi solo definire il tipo di conversione e impostare i dettagli
  • Durante il processo di conversione è possibile applicare fino a 60 funzioni batch aggiuntive come rotazione, ridimensionamento, modifica della risoluzione, ecc.
  • Automatizza la rimozione di Mac OS Ressourcefork prima che i documenti vengano caricati se ci sono problemi di compatibilità quando i file di immagini vengono posizionati su Internet
  • Crea cataloghi in formato HTML per la pubblicazione su Internet e adatta i colori, le dimensioni, ecc. Alle tue esigenze individuali (vedi esempi)
  • Rinominare una selezione di documenti in base a criteri speciali in modo rapido e semplice
  • Unisci le immagini insieme (ad es. Per QuickTime VR)
  • Inserisci o estrai informazioni IPTC dentro o fuori da una varietà di formati di documenti
  • e altro ancora ...

inserisci qui la descrizione dell'immagine


4

Questo è un altro script di ridimensionamento di immagini batch semplice, pulito ed efficace. Se hai a che fare con grafica e risoluzioni diverse, puoi usare questo script e salvarlo con valori diversi per usi occasionali.

Fallo modificando questo valore target_width 120 in base alle tue esigenze e salva lo script. Ora trascina le tue immagini sul file di script salvato per iniziare a ridimensionare le tue immagini.


Apri Script Editor e crea il seguente nuovo script:

-- save in Script Editor as Application
-- drag files to its icon in Finder

on open some_items
  repeat with this_item in some_items
    try
      rescale_and_save(this_item)
    end try
  end repeat
end open


to rescale_and_save(this_item)
  tell application "Image Events"
    launch
    set the target_width to 120
    -- open the image file
    set this_image to open this_item

    set typ to this_image's file type

    copy dimensions of this_image to {current_width, current_height}
    if current_width is greater than current_height then
      scale this_image to size target_width
    else
      -- figure out new height
      -- y2 = (y1 * x2) / x1
      set the new_height to (current_height * target_width) / current_width
      scale this_image to size new_height
    end if

    tell application "Finder" to set new_item to ¬
    (container of this_item as string) & "scaled." & (name of this_item)
    save this_image in new_item as typ

  end tell
end rescale_and_save

fonte originale


3

L'anteprima è sicuramente una buona soluzione per alcuni ridimensionamenti occasionali. Ci sono anche altre belle opzioni gratuite, come ImageMagic (utility da riga di comando), Anteprima o qualcos'altro più Automator, ecc.

Tuttavia, se questo fa parte del tuo lavoro e hai bisogno di una vera flessibilità, un'applicazione speciale ti farà risparmiare molto tempo e offrirà molte più opportunità. Molti utenti hanno scelto il nostro ridimensionatore di immagini batch Resize Sense ( http://veprit.com/resizesense ) per la sua eccezionale flessibilità e praticità.

Disclaimer: sono lo sviluppatore. Faresti meglio a giudicare Resize Sense da solo. Il video introduttivo sul sito Web del prodotto ti dirà esattamente cosa c'è di così speciale in Resize Sense. C'è una versione demo gratuita.



1

Di solito importare tutte le immagini in iPhoto e quindi esportarle nelle diverse dimensioni. L'ho fatto su lotti di circa 300 immagini, ma mai sulla scala che desideri. Tuttavia, potrebbe essere un'opzione.


1

Nessuno ha menzionato Apple Aperture.

Mentre non è affatto il più economico, viene fornito con molte altre cose che potresti trovare utili. Sostituisce sostanzialmente iPhoto e poi alcuni. Fa il 95% di ciò che i fotografi usano comunemente Photoshop. (Non farà il testo fiammeggiante. :-)

Ma a meno che tu non abbia bisogno delle altre cose che ti dà Aperture, secondo sia l'approccio ImageMagick - se non sei intimidito scaricando, installando ed eseguendo programmi da riga di comando, sia l'approccio Automator, che nonostante l'affermazione di @ markhunte, è gratuito .


-1

Uso vino (e XQuartz ) e IrfanView . Ovviamente puoi anche usare imagemagick dalla riga di comando. Per il vino e l'immagine, consiglierei Homebrew .

irfanview in wine su OS X


Ho usato Irfanview per oltre 10 anni sul PC e lo adoro. Ma non hanno una versione per Mac?
Uwe

1
Sospetto che intendano dire che gestiscono IrFranView sotto il vino. Wine ti consente di eseguire il software Windows su altri sistemi operativi. Con Wine puoi installare ed eseguire queste applicazioni proprio come faresti con Windows. Lo screenshot mostra chiaramente le finestre di tipo Mac (pulsanti in alto) con la GUI della finestra del PC
markhunte

5
L'uso di Wine con un'applicazione Windows è davvero un problema per qualcosa che puoi fare in modo nativo.
Matteo
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.