¿Cómo generar muchos archivos de imágenes (en blanco)?

12

Para una prueba, necesito crear rápidamente 1700 imágenes jpg (incluso en blanco) en un tamaño definido de 1000x706. Me pregunto si podríamos hacer esto con un script de shell o un programa (como ImageMagick). Me gustaría que llaman img_0.jpg, img_1.jpg...

Alguien sabe una solución simple?

Raphaël
fuente

Respuestas:

21

Lo siguiente debería funcionar para sus necesidades:

#!/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 crea la primera imagen, y luego se copia para formar 1700 archivos. Si ulimitno le impide hacerlo (probablemente lo hará) y tiene suficientes descriptores de archivo, puede reemplazar el ciclo con:

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

También puede usar el modismo más corto (con un requisito de memoria más grande para almacenar todos los números a la vez) for _num in {1..1699}en bashversiones recientes , pero no especifica qué shells están disponibles. ((está disponible en la mayoría de los shells ( bash, kshy ashal menos, no estoy seguro acerca de otros).

Chris Down
fuente
Gracias por tu ayuda. Intento esto en unas pocas horas. Gracias por la idea =) Voto por su respuesta tan pronto como tengo suficientes puntos
Raphaël