Ich habe mehrere Bilddateien in einem Verzeichnis. Diese Bilder haben eine ähnliche Größe und dieselbe Hintergrundfarbe.
Wie kann ich alle Bilder gleich groß machen, indem ich Hintergrund wie dieses angehängte Bild hinzufüge?
scripting
images
imagemagick
Eisensand
quelle
quelle
-border
unter "Bildoperatoren" inman convert
). Sie benötigen jedoch ein kurzes Programm, um dies zu tun, und ich werde es nicht in der Shell schreiben. Wenn Sie also bereit sind, eine Antwort in Perl mit zu akzeptierenImage::Magick
, kann ich eine bereitstellen.Antworten:
Dies sollte mit allen Bildtypen arbeiten , dass ImageMagick ohne handhaben kann angeben
*.png
,*.jpg
,*.jpeg
etc:Dadurch werden die Originalbilder in ein datiertes Verzeichnis verschoben, falls die Ergebnisse nicht erwünscht sind. Dies schlägt auch fehl, wenn die Bilddateien aus irgendeinem Grund Zeilenumbrüche in ihren Namen enthalten.
Dieses Skript könnte weitere Fehlermeldungen enthalten, um einen hilfreichen Hinweis zu geben, wenn ein Fehler aufgetreten ist. Wenn jedoch beim Verschieben der Bilder (alles zwischen
set -e
undset +e
) ein Fehler auftritt , wird das Skript beendet. Hoffentlich wird dadurch irreversibler Schaden vermieden.Aktualisieren
Jetzt mit
awk
Skript, das schamlos aus @ terdons Antwort plagiiert wurde .quelle
Solange Sie eine Zielgröße auswählen, die größer als Ihr größtes Bild ist, sollten Sie Folgendes tun:
Mit dem obigen Befehl wird die Originaldatei geändert. Möglicherweise möchten Sie eine Sicherungskopie erstellen , bevor Sie sie ausführen. Mit
mogrify
ImageMagick können Sie die Größe aller PNGs im aktuellen Verzeichnis auf 200 x 200 Pixel (-extent 200x200
) ändern, indem Sie einen weißen Hintergrund hinzufügen (-background black
) und das Bild zentrieren (-gravity Center
). Das-colorspace RGB
wird benötigt, um Fehler wie zu vermeidenUm sicherzustellen, dass Sie keine Bilddaten verlieren, stellen Sie sicher, dass die von Ihnen verwendete Größe größer oder so groß ist wie das größte Bild, das Sie haben. Um so schnell zu kommen, versuchen Sie:
Das sollte die Größe aller sortierten Bilder drucken und Sie können leicht die größten finden.
Um Goldlöckchen (: P) zu besänftigen, können Sie den gesamten Prozess automatisieren:
quelle
Ich nutzte die Gelegenheit, um meine Bash-Fähigkeiten zu verbessern und fand Folgendes:
Dies sollte den Trick tun: Zuerst werden alle Dateien durchlaufen (je nach Bedarf ändern), um die größte Breite und Höhe zu ermitteln, und dann erneut Schleifen, um die erforderlichen Ränder hinzuzufügen (das
-bordercolor black
Teil entsprechend Ihren Anforderungen ändern ). Die neuen Dateien werden im Ordner "bordered" gespeichert.quelle