Como gerar muitos arquivos de imagens (em branco)?

12

Para um teste, eu preciso criar rapidamente 1700 jpg-images (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 chamassem img_0.jpg , img_1.jpg

Alguém conhece uma solução simples?

    
por Raphaël 22.09.2011 / 11:29

2 respostas

21

O seguinte deve funcionar para as 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, em seguida, é copiado para criar 1700 arquivos. Se ulimit não o restringir de fazer isso (provavelmente será) e você tiver descritores de arquivo suficientes, você pode 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 recentes bash versions, mas não especifica quais shells estão disponíveis. (( está disponível na maioria dos shells ( bash , ksh e ash , pelo menos, não tenho certeza sobre os outros).

    
por 22.09.2011 / 11:41
0

Se você quiser uma maneira de criar várias imagens que não sejam em branco, talvez considere: link

    
por 07.12.2017 / 03:15