Comment générer beaucoup de fichiers d'images (vierges)?

12

Pour un test, j'ai besoin de créer rapidement 1700 images jpg (même vierges) dans une taille définie 1000x706. Je me demande si nous pourrions le faire avec un script shell ou un programme (comme ImageMagick). J'aimerais qu'ils appellent img_0.jpg, img_1.jpg

Quelqu'un connaît une solution simple?

Raphaël
la source

Réponses:

21

Les éléments suivants devraient répondre à vos besoins:

#!/bin/bash
convert -size 1000x706 xc:white img_0.jpg || { printf '%s\n' 'Failed to create original image' ; exit 1 ; }
for (( _num = 1 ; _num < 1700 ; _num++ )); do
   cp img_0.jpg "img_${_num}.jpg" || { printf '%s\n' "Failed to copy to image img_${_num}.jpg" ; exit 2 ; }
done

ImageMagick crée la première image, puis elle est copiée pour constituer 1700 fichiers. Si ulimitcela ne vous empêche pas de le faire (il le fera probablement) et que vous avez suffisamment de descripteurs de fichiers, vous pouvez remplacer la boucle par:

tee img_{1..1699}.jpg > /dev/null < img_0.jpg

Vous pouvez également utiliser l'idiome plus court (avec une mémoire plus importante pour stocker tous les nombres à la fois) for _num in {1..1699}dans les bashversions récentes , mais vous ne spécifiez pas les shells disponibles. ((est disponible dans la plupart des coquilles ( bash, kshet ashau moins, pas sûr d' autres).

Chris Down
la source
Merci de votre aide. J'essaye ceci en quelques heures. Merci pour l'idée =) Je vote pour votre réponse dès que j'ai assez de points
Raphaël