Come generare molti file di immagini (vuoti)?


12

Per un test, devo creare rapidamente 1700 immagini jpg (anche vuote) in una dimensione definita 1000x706. Mi chiedo se potremmo farlo con uno script di shell o un programma (come ImageMagick). Vorrei che hanno chiamato img_0.jpg, img_1.jpg...

Qualcuno conosce una soluzione semplice?

Risposte:


21

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 ulimitnon 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 bashversioni recenti , ma non si specifica quali shell sono disponibili. ((è disponibile nella maggior parte delle shell ( bash, kshe ash, almeno, non sono sicuro degli altri).


Grazie per l'aiuto. Lo provo tra poche ore. Grazie per l'idea =) voto per la tua risposta non appena ho abbastanza punti
Raphaël

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.