Как создать много (пустых) файлов изображений?

12

Для теста мне нужно быстро создать 1700 jpg-изображений (даже пустых) определенного размера 1000x706. Интересно, можем ли мы сделать это с помощью сценария оболочки или программы (например, ImageMagick). Я желаю , чтобы они называли img_0.jpg, img_1.jpg...

Кто-то знает простое решение?

Рафаель
источник

Ответы:

21

Следующее должно работать для ваших нужд:

#!/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 создает первое изображение, а затем оно копируется для создания 1700 файлов. Если ulimitэто не ограничивает вас (возможно, так и будет), и у вас достаточно файловых дескрипторов, вы можете заменить цикл следующим:

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

Вы также можете использовать более короткую идиому (с большим требованием к памяти для хранения всех чисел одновременно) for _num in {1..1699}в последних bashверсиях, но вы не указываете, какие оболочки доступны. ((доступен в большинстве оболочек ( bash, kshи , по ashкрайней мере, не уверен , о других).

Крис Даун
источник
Спасибо за помощь. Я пробую это через несколько часов. Спасибо за идею =) Я голосую за ваш ответ, как только у меня будет достаточно очков
Рафаэль