Ändern Sie die Größe von Bildern mit ImageMagick nach einem von mehreren Aspekten

413
Henrik

Ich habe eine Sammlung von Bildern, die ich mit ImageMagick in einem Bash-Skript verarbeite. Es durchläuft die Bilder in einem Ordner. Die meisten von ihnen sind im 3: 2-Format, aber einige sind 4: 3, 2: 1 und 1: 1. Sie sind jedoch nicht alle perfekt auf das Seitenverhältnis zugeschnitten, was Layoutprobleme verursacht. Wenn ich ein Bild mit 3.01: 2 habe, möchte ich, dass es in 3: 2 gezwungen wird.

Derzeit verwende ich den Befehl zur Größenänderung unten. Früher habe ich Skalieren und Beschneiden verwendet, um ein Kraftverhältnis von 3: 2 zu erzwingen, aber das schneidet Bilder falsch mit anderen Seitenverhältnissen.

convert -resize 300x200 

Ich möchte, dass die Bilder möglichst nahe an eine Liste von Größen herangezogen werden. Ich bin gut darin, Pixelgrößen oder (vorzugsweise) Seitenverhältnisse zu definieren.

Ich habe dies im bash-Skript zusammengeschustert, was mir etwas bringt, worauf ich testen kann, um eine glorreiche Reihe von Checks zu testen. Beachten Sie, dass $ filename aus anderen Quellen stammt:

aspect=$(ffmpeg -i "_originals/$filename"*.jpg 2>&1 | egrep -o "DAR ([0-9]+:[0-9]+)" | cut -f2 -d " " | sed 's/:/ /') ratio=$(echo $aspect |awk '') printf "$ratio\n" 
2
Verwenden Sie etwas, um die X / Y-Dimension zu lesen, das Verhältnis zu berechnen und einer Auswahl zuzuordnen? Seth vor 6 Jahren 0
Ja, das wäre ungefähr das, wonach ich strebe. Aber ich weiß nicht, wie ich es anstellen würde. Ich würde raten, Exiftool zu lesen und dann einige Berechnungen anzustellen? Henrik vor 6 Jahren 0
Sie können auch [identify] (https://www.imagemagick.org/script/identify.php) verwenden, das auch eine [MAN-Seite] (https://linux.die.net/man/1/identify) enthält ) so könnte es verfügbar sein. Die Bilddimension ist nicht wirklich Teil der Exif-Informationen, sondern eher ein grundlegender Bestandteil der Bildstruktur in den meisten mir bekannten Formaten. Seth vor 6 Jahren 0

0 Antworten auf die Frage