Como gerar muitos arquivos de imagens (em branco)?

12

Para um teste, preciso criar rapidamente 1700 imagens jpg (mesmo em branco) em um tamanho definido de 1000x706. Gostaria de saber se poderíamos fazer isso com um script de shell ou um programa (como o ImageMagick). Eu gostaria que eles chamada img_0.jpg, img_1.jpg...

Alguém conhece uma solução simples?

Raphaël
fonte

Respostas:

21

O seguinte deve funcionar para suas necessidades:

#!/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

O ImageMagick cria a primeira imagem e depois é copiada para formar 1700 arquivos. Se ulimitnão o impedir de fazê-lo (provavelmente o fará) e você tiver descritores de arquivo suficientes, poderá substituir o loop por:

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

Você também pode usar o idioma mais curto (com um requisito de memória maior para armazenar todos os números de uma vez) for _num in {1..1699}nas bashversões recentes , mas não especifica quais shells estão disponíveis. ((está disponível na maioria das conchas ( bash, kshe, ashpelo menos, não tenho certeza sobre outros).

Chris Down
fonte
Obrigado pela ajuda. Eu tento isso em algumas horas. Obrigado pela ideia =) voto I pela sua resposta assim que eu tiver pontos suficientes
Raphaël