Wie werden viele (leere) Bilddateien erzeugt?


12

Für einen Test muss ich schnell 1700 JPG-Bilder (auch leere) in einer definierten Größe von 1000 x 706 erstellen. Ich frage mich, ob wir das mit einem Shell-Skript oder einem Programm (wie ImageMagick) machen könnten. Ich wünschte, sie riefen an img_0.jpg, img_1.jpg...

Kennt jemand eine einfache Lösung?

Antworten:


21

Folgendes sollte für Ihre Bedürfnisse funktionieren:

#!/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 erstellt das erste Bild und kopiert es anschließend zu 1700 Dateien. Wenn Sie ulimitdies nicht einschränken (was wahrscheinlich der Fall sein wird) und Sie über genügend Dateideskriptoren verfügen, können Sie die Schleife ersetzen durch:

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

Sie können auch das kürzere Idiom (mit einem größeren Speicherbedarf, um alle Zahlen gleichzeitig zu speichern) for _num in {1..1699}in neueren bashVersionen verwenden, aber Sie geben nicht an, welche Shells verfügbar sind. ((in den meisten Schalen verfügbar ist ( bash, ksh, und ashzumindest nicht sicher andere).


Danke für deine Hilfe. Ich versuche das in ein paar Stunden. Vielen Dank für die Idee =) Ich stimme für Ihre Antwort, sobald ich genug Punkte habe
Raphaël

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.