Qu'est-ce qu'un bon programme pour redimensionner par lots 100 000 images jpg?


21

Le programme doit s'exécuter en mode batch pour redimensionner tous les fichiers d'un dossier, puis enregistrer les nouveaux fichiers dans un dossier différent. Une option pour définir la qualité jpg serait également très bien.


2
Une combinaison de find et ImageMagic.
mspasov

Réponses:


30

Je suis un peu surpris que personne n'ait mentionné l'option la plus simple, la moins chère et la moins technique:

Automator

Tout d'abord, ouvrez Automator, qui se trouve dans votre dossier Applications.

Ensuite, choisissez de créer un nouveau flux de travail:

Créer un workflow d'automatisme

Ensuite, ajoutez les étapes suivantes au flux de travail par glisser-déposer:

étapes du workflow

Lorsque vous exécutez cela, Automator va:

  1. ouvrir une fenêtre vous demandant de choisir certains fichiers (autant que vous le souhaitez)
  2. ouvrir une autre fenêtre vous demandant où vous souhaitez enregistrer les copies redimensionnées
  3. vous demander la taille souhaitée des copies redimensionnées. Vous pourrez choisir soit une taille fixe, soit un pourcentage. Toutes les images seront redimensionnées à cette taille ou à ce pourcentage.

(La case à cocher "afficher cette action lorsque le workflow s'exécute" signifie que le workflow va se mettre en pause, afficher l'option et vous permettre de la modifier ensuite)

Une fois que vous avez fait cela, Automator va se retourner et brûler, et quand cela sera fait, il émettra un bip.

Malheureusement, il ne semble pas avoir la possibilité de choisir la qualité JPEG. Cependant, pour le prix (gratuit), c'est assez pratique.


C'est peut-être le moins technique pour quelqu'un qui n'utilise pas Terminal. Et peut-être le plus simple, mais ce n'est pas le moins cher des réponses ici. Sips est inclus dans la version Unix du Mac. Et ImageMagick est également gratuit.
markhunte

3
Il est prudent de supposer qu'Automator est, pour les besoins de cette discussion, gratuit car il est raisonnable de supposer que @mototribe exécute OS X. Ma seule préoccupation serait de savoir comment Automator gérerait 100 000 images, mais, en supposant qu'elles ne sont pas toutes dans un seul dossier, je continuerais à le nourrir un dossier à la fois jusqu'à ce qu'il soit fait. J'ai exécuté ce flux de travail sur des centaines d'images sans difficulté. Je ne vois aucune raison pour laquelle cela ne fonctionnerait pas contre plusieurs milliers, car chaque image est poussée une par une, mais je serais en mode de confiance mais de vérification.
jaberg

Yep Automator a parfaitement fait le travail. Je suis venu ici en pensant "J'ai trouvé un utilitaire de ligne de commande qui redimensionnerait des images par lots" ... Parfois, la solution la plus simple est aussi la meilleure. À votre santé.
Silouane Gerin

19

J'aime utiliser ImageMagick. sipset Automator (qui utilisent une méthode de redimensionnement identique) rendent les images trop floues sans accentuation supplémentaire à mon avis.

Vous pouvez installer ImageMagick avec brew install imagemagickaprès avoir installé Homebrew ou avec sudo port install imagemagickaprès avoir installé MacPorts . Exécutez ensuite une commande comme celle-ci:

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

500x500>rend les images plus larges ou plus hautes que 500px adaptées à 500x500px. 500xchangerait toujours la largeur à 500 px et 500x500^ferait toutes les images au moins 500x500px. -path /tmp/enregistre les fichiers de sortie au /tmp/lieu de modifier les fichiers en place.

Lanczos2ou le Lanczos à 2 lobes est très similaire à Catrom. Par rapport à Lanczos( Lanczos3), ils sont légèrement moins nets, produisent moins d'artefacts de sonnerie et produisent plus de motifs moirés. Le filtre par défaut pour réduire la taille des images est Triangle, ce qui rend souvent les images trop floues à mon avis.

-quality 100crée des fichiers environ deux fois plus gros -quality 95, ce qui crée des fichiers environ deux fois plus gros -quality 88.

Plus d'information:

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

Voici une commande similaire qui utilise sips:

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

-Z 500est comme 500x500>dans ImageMagick.

Si d'autres ont moins de 100 000 images, vous pouvez également utiliser Aperçu:

L'aperçu utilisait la même méthode de redimensionnement que sipsAutomator, mais il en a utilisé une autre depuis 10.7. Je préfère cependant ImageMagick Lanczos2.

J'ai téléchargé une comparaison des différentes options sur http://19a5b0.s3-website-us-west-2.amazonaws.com/imagemagick-osx-resizing/index.html .


1
Je voudrais vous avertir d'utiliser mogrify: cela convertit les fichiers en place, écrasant les originaux! En cas de problème, vous avez perdu vos fichiers! Meilleure utilisation convert(également d'ImageMagick).
Kurt Pfeifle

1
@KurtPfeifle Ce n'est pas le cas si vous spécifiez l' -pathoption (qui convertn'a pas actuellement).
Lri

Si vous optez pour la vitesse, sipsc'est peut-être le meilleur choix. Lors d'un test rapide avec 1 000 JPG à ~ 5 Mo, le redimensionnement à une largeur de 800 pixels a pris ~ 1 min. avec sipset ~ 8 min. avec mogrify(avec les tampons de disque purgés, en utilisant GNU Parallel sur un quadcore).
Stefan Schmidt

13

ImageMagick est un programme d'interface de ligne de commande et conçu à cet effet. L'utilisation et l'installation d'ImageMagick peuvent intimider, mais ce package de manipulation d'image est le plus puissant que j'ai rencontré jusqu'à présent. Comme l'installation à partir des sources peut être un problème pour les utilisateurs natifs d'OS X, je vous conseille d'utiliser Homebrew .

Pour installer ImageMagick à l' aide de Homebrew, exécutez ce oneliner dans votre terminal:

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

Homebrew est maintenant installé, il est sage de suivre les suggestions de l'installateur après l'installation. Maintenant, nous installons ImageMagick en utilisant brew.

brew install imagemagick

ImageMagick est maintenant installé et son convertprogramme peut être utilisé à vos fins. Pour convertir une grande image jpg en une image png plus petite, vous pouvez l'exécuter

convert input.jpg -geometry 800x600 output.png

Pour répondre à votre question "Comment redimensionner tous les fichiers d'un dossier et les enregistrer dans un dossier différent", vous pouvez exécuter le script suivant.

# 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 peut convertir plus de 100 formats d'image différents, et presque tous les trucs que vous pouvez faire avec Photoshop que vous pouvez faire avec ImageMagick.


merci, c'est ce que j'ai fini par utiliser - mais je l'ai installé sur Drupal depuis que j'importe les images dans Drupal.
uwe

@the_karel, je viens d'améliorer votre message précédent. J'espère que ça ne te dérange pas.
CousinCocaine

7

Plusieurs personnes ont mentionné ImageMagick. Voici une recette: pour simplifier, supposez que tous les fichiers sont dans un dossier (et que le dossier ne contient rien d'autre). Ouvrez une fenêtre de terminal, cd dans ce dossier, puis exécutez

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

où vous remplacez le 800x600 par la taille que vous voulez.

Les avantages incluent une grande flexibilité dans ImageMagick convert, comme la possibilité de sélectionner différents paramètres de qualité pour l'image cible ou de définir l'option de redimensionnement en pourcentages. Ou vous pouvez utiliser -geometry 800x800, auquel cas le rapport d'aspect sera conservé, mais le maximum de la largeur et de la hauteur sera de 800 pixels.

Les inconvénients sont les plus évidents: cela nécessite une certaine familiarité avec la ligne de commande, ainsi qu'une volonté de parcourir les options de ligne de commande de convertpour les paramètres souhaités. Ce n'est pas une tâche pour les faibles de cœur.


4

Je seconde GraphicConverter . Je suis un utilisateur enregistré depuis 16 ans. Son objectif principal est le traitement d'images par lots, et il dispose d'une bonne interface utilisateur pour concevoir des flux de travail personnalisés et les enregistrer.

Vous pouvez également l'utiliser en conjonction avec Automator, mais vous n'en aurez probablement pas besoin.

Voici quelques informations de la page de GraphicConverter expliquant leurs fonctions d'édition d'images de traitement par lots .

Conversion par lots avec fonctions supplémentaires

GraphicConverter vous offre un traitement par lots sophistiqué qui automatise entièrement les tâches répétitives appliquées à une sélection d'images:

  • Convertissez toutes les images source sélectionnées facilement et rapidement dans un nouveau format - qu'il y ait 5 ou 5 000 fichiers images; vous définissez simplement le type de conversion et définissez les détails
  • Pendant le processus de conversion, vous pouvez appliquer jusqu'à 60 fonctions de lot supplémentaires telles que la rotation, le redimensionnement, la modification de la résolution, etc.
  • Automatisez la suppression de Mac OS Ressourcefork avant le téléchargement des documents en cas de problème de compatibilité lorsque les fichiers image sont placés sur Internet
  • Créez des catalogues au format HTML pour publication sur Internet et ajustez les couleurs, tailles, etc. à vos besoins individuels (voir exemples)
  • Renommez rapidement et facilement une sélection de documents selon des critères spéciaux
  • Joignez les images ensemble (par exemple pour QuickTime VR)
  • Insérer ou extraire des informations IPTC dans ou hors d'une variété de formats de documents
  • et beaucoup plus ...

entrez la description de l'image ici


4

Ceci est encore un autre script de redimensionnement d'image par lots simple, propre et efficace. Si vous traitez beaucoup de graphiques et de résolutions différentes, vous pouvez utiliser ce script et l'enregistrer avec des valeurs différentes pour des utilisations occasionnelles.

Faites-le en modifiant cette valeur de target_width 120 selon vos besoins et enregistrez le script. Faites maintenant glisser vos images sur le fichier de script enregistré pour commencer à redimensionner vos images.


Ouvrez l'éditeur de script et créez le nouveau script suivant:

-- 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

source d' origine


3

L'aperçu est certainement une bonne solution pour certains redimensionnements occasionnels. Il existe également d'autres options gratuites intéressantes, telles que ImageMagic (utilitaire de ligne de commande), Aperçu ou autre chose plus Automator, etc.

Cependant, si cela fait partie de votre travail et que vous avez besoin d'une véritable flexibilité, une application spéciale vous fera gagner beaucoup de temps et vous offrira bien plus d'opportunités. De nombreux utilisateurs ont choisi notre redimensionneur d'image par lots Resize Sense ( http://veprit.com/resizesense ) pour sa flexibilité et sa commodité exceptionnelles.

Avertissement: je suis le développeur. Vous feriez mieux de juger vous-même de Resize Sense. La vidéo d'introduction sur le site Web du produit vous dira exactement ce qui est si spécial dans Resize Sense. Il existe une version de démonstration gratuite.



1

J'importe généralement toutes les images dans iPhoto, puis je les exporte vers les différentes tailles. Je l'ai fait sur des lots de 300 images environ, mais jamais à l'échelle que vous souhaitez. Pourtant, cela peut être une option.


1

Personne n'a mentionné Apple Aperture.

Bien que ce ne soit pas le moins cher, il est livré avec beaucoup d'autres choses que vous pourriez trouver utiles. Il remplace essentiellement iPhoto, puis certains. Il fait 95% de ce pour quoi les photographes utilisent couramment Photoshop. (Il ne fera pas de texte enflammé. :-)

Mais à moins que vous n'ayez besoin des autres choses qu'Aperture vous offre, je soutiens à la fois l'approche ImageMagick - si vous n'êtes pas intimidé par le téléchargement, l'installation et l'exécution de programmes en ligne de commande, et l'approche Automator, qui, malgré la revendication de @ markhunte, est gratuite .


-1

J'utilise wine (et XQuartz ) et IrfanView . Bien sûr, vous pouvez également utiliser imagemagick à partir de la ligne de commande. Pour le vin et imagemagick, je recommanderais Homebrew .

irfanview dans wine sur OS X


J'utilise Irfanview depuis plus de 10 ans sur le PC et j'adore ça. Mais ils n'ont pas de version Mac?
uwe

1
Je suppose qu'ils signifient qu'ils exécutent IrFranView sous wine. Wine vous permet d'exécuter des logiciels Windows sur d'autres systèmes d'exploitation. Avec Wine, vous pouvez installer et exécuter ces applications comme vous le feriez dans Windows. La capture d'écran montre clairement les fenêtres de type Mac (boutons en haut) avec l'interface graphique de la fenêtre PC
markhunte

5
Utiliser Wine avec une application Windows est vraiment exagéré pour quelque chose que vous pouvez faire en natif.
Matteo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.