Следующее должно работать для ваших нужд:
#!/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
крайней мере, не уверен , о других).
Если вам нужен сценарий для создания множества непустых изображений, подумайте: https://perlmaven.com/drawing-images-using-gd-simple
источник