redimensionnement d'image par lots rapide [fermé]

10

regarder et ne peux pas trouver le parfait.
j'ai 100 gig de séquence d'images 4K à traiter.

trouvé imagizer2 sur sourceforge. multi-thread mais pas 64 bits (est-ce important?).
je suppose que le plus rapide utilisera la bibliothèque de base d'images IPP d'Intel.

je suis sur windows, mais si une option folle de linux rapide est disponible je considérerai (benchmarks?)

benchmarks inclus que j'ai exécutés sur un lot de test de 100 fichiers de 5k (4,3 Mo)

yoshco
la source
Vous avez mentionné la séquence d'images - voulez-vous traiter des images individuelles ou les combiner en séquences vidéo? Si ce dernier, je ferais les transformations lors de la production avec virtualdub.
Andy Lee Robinson
oui, mon plan d'origine était de tout faire en ligne de commande en utilisant ffmpeg ffmpeg -i d:\g\25\g_%%04d.jpg -r 15 -s hd720 -vcodec libx264 -fpre "libx264-hq.ffpreset" -crf 16 Day01_720.mp4 mais fmpeg est codé en dur pour prendre en charge des images ne dépassant pas 5012 pixels. d'où le redimensionnement.
yoshco
je préfère en fait avisynth pour le travail de séquence d'images, c'est tellement puissant.
yoshco
Penny tombe! Images de qualité de film en ligne 4K, pas d'images de 4 Ko! Oui, avisynth est génial et fourni avec dub virtuel. ffmpeg est open source, donc la limite de 5012 pixels peut être modifiée et recompilée, ou les auteurs pourraient augmenter la limite par défaut. Ça ne devrait pas être difficile.
Andy Lee Robinson
ajout de benchmakrs: VIPS et GraphicsMagick vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use
yoshco

Réponses:

0

Excellentes statistiques - merci pour les références. Peut-être trop tard, mais vous n'avez pas mentionné les résultats d'ImageResizer (de Codeplex) suggérés avec Batch Picture Resizer ci-dessus. (pas le même que le "crapware" mentionné) J'ai commencé à l'utiliser après que MS ait cessé de mettre à jour leur Image Resizer. Mais vous n'avez certainement pas les besoins de vitesse et de volume - redimensionnez simplement et rapidement les pièces jointes des e-mails et autres.

David
la source
merci, j'ai perdu le jeu de données d'origine mais sur un ensemble comparable, cela semble rapide et fou. dommage que ce ne soit pas scriptable (mais le code source est disponible, donc ...)
yoshco
5

J'utilise IrfanView pour convertir 1 Go de fichiers tiff en fichiers GIF plus petits chaque nuit. Cela ne prend que quelques minutes.

Un exemple de commande ressemblerait à ceci (je l'utilise pour convertir des images pour mon affichage photo numérique)

"C:\Program Files (x86)\IrfanView\i_view32.exe" "C:\Pictures\Best\*.jpg" /resample=(720,540) /aspectratio /convert="C:\Temp\miniDisp\*_rsz.jpg"

Cela redimensionne tous les fichiers JPG de C: \ Picutres \ Best \ en 720x540 et les enregistre sous C: \ Temp \ miniDisp \ OrgFilename _rsz.jpg.

Les commutateurs de ligne de commande que comprend IrfanView peuvent être trouvés dans l'aide en ligne (voir Index - Options de ligne de commande) ou en ligne ici

Tex Hex
la source
irfan est aussi mon outil au jour le jour, mais irfan = 80sec pour le même test.
yoshco
Eh bien, c'est vraiment long par rapport aux autres programmes. Merci pour les tests.
Tex Hex
irfanview a également ma visionneuse et mon processeur par lots de choix, bien que virtualdub soit également un outil essentiel. Il pourrait être utilisé pour combiner des séquences d'images dans une vidéo avec l'avantage de la compression delta, et une image pourrait être récupérée en indexant une image.
Andy Lee Robinson
5

Vous ne savez pas comment cela se comparera dans le département de référence, mais vous voudrez peut-être essayer ImageMagick en utilisant les outils "convertir" ou "mogrify". On dirait qu'il fait bon usage du 64 bits, du nombre de cœurs et autres.
Tout ce que je sais, c'est qu'il est vraiment puissant et complet. Je peux redimensionner sur place ou ajouter des options comme des filtres de rééchantillonnage et des conversions de type de fichier.

mogrify -format jpg -filter Cubic -resize 20%x20% rgb-?.png
Dennis
la source
j'adore cmd, mais je fais aussi référence à junky ... mageMagick-6.7.1-Q16x64 = 149sec
yoshco
Je suppose que je ne suis pas surpris car il semble que ImageMagick soit plus le couteau suisse que le scalpel. Bravo pour la question et les repères.
Dennis
4

Découvrez ces programmes:

  1. Resizer d'image en lots .
  2. Resizer d'image .

Redimensionner des images à l'aide de fichiers batch: Redimensionner par lot .

TookTheRook
la source
2
j'ai pris 100 photos 5k: resizer d'image par lot = 30sec imagizer2 = 64sec
yoshco
Essayez celui-ci: Fast Image Resizer ( adionsoft.net/fastimageresize ). Celui-ci semble également prometteur: evidenceidea.com/windows-software/light-image-resizer
TookTheRook
1
Calibreur d'image rapide = 110 sec
yoshco
light-image-resizer is crapware
yoshco
Fausse publicité alors. Essayez la méthode batch que j'ai mise dans le commentaire édité. Si cela n'aide pas, je n'ai plus d'options. Sinon, si le redimensionnement d'image par lots a pris 30 secondes, pour redimensionner 500 Mo de mots d'images (en supposant que chacune des 100 images était de 5 Mo. ea), cela devrait prendre 1 heure et 40 minutes pour redimensionner l'ensemble des 100 Go de photos que vous avoir. Ce n'est pas si mal?
TookTheRook
1

Le parallèle peut être utilisé pour accélérer les conversions par lots avec imagemagick.

Rétrécissez chaque * .jpg dans un répertoire de sorte que ni la hauteur ni la largeur ne dépassent 1080 pixels:

parallel mogrify "{}" -resize 1080x1080 ::: *.jpg

Utiliser convert pour créer des fichiers plus petits séparés:

parallel convert "{}" -resize 1080x1080 "{.}-small.jpg" ::: *.jpg

Notez que cela s'applique au parallèle GNU, pas à la version empaquetée dans les moreutils de Debian, qui a une syntaxe différente et moins de fonctionnalités. Consultez la page de manuel pour plus d'informations sur le parallèle.

evilsoup
la source
0

vips est plus rapide, pour moi:

$ header sample.jpg 
sample.jpg: 8888x5000 uchar, 3 bands, srgb, jpegload
$ for i in {1..100}; do cp sample.jpg t$i.jpg; done
$ time vipsthumbnail --size 1280 t*
real  0m14.672s
user  0m17.631s
sys   0m0.988s

La vitesse est limitée par l'encodage / décodage jpeg, qui (grâce à libjpeg) est monothread. Vous pouvez le faire fonctionner un peu plus rapidement si vous exécutez plusieurs vipsthumbnail en parallèle:

$ mkdir a b c d e
$ for j in a b c d e; do for i in {1..20}; do cp sample.jpg $j/t$i.jpg; done; done
$ time (for i in a b c d e; do vipsthumbnail --size 1280 $i/t* & done; wait)
real  0m5.258s
user  0m18.557s
sys   0m0.891s

C'est sur un imac 2012, mais il y a aussi des binaires Windows.

http://www.vips.ecs.soton.ac.uk/supported/current/

jcupitt
la source