Risposte:
Quanto segue dovrebbe funzionare per le tue esigenze:
#!/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 prima immagine, quindi viene copiata per creare 1700 file. Se ulimit
non ti impedisce di farlo (probabilmente lo farà) e hai abbastanza descrittori di file, puoi sostituire il ciclo con:
tee img_{1..1699}.jpg > /dev/null < img_0.jpg
È inoltre possibile utilizzare il linguaggio più breve (con un requisito di memoria maggiore per memorizzare tutti i numeri contemporaneamente) for _num in {1..1699}
nelle bash
versioni recenti , ma non si specifica quali shell sono disponibili. ((
è disponibile nella maggior parte delle shell ( bash
, ksh
e ash
, almeno, non sono sicuro degli altri).
Se vuoi un modo con script per creare molte immagini non vuote, potresti considerare: https://perlmaven.com/drawing-images-using-gd-simple