Ändern der Größe und Zuschneiden von Bildern auf 6x4 auf eine Breite von 1024

7

Ich habe einen gemischten Satz von Bildern, von denen jedes eine etwas andere Auflösung mit einem etwas anderen Seitenverhältnis als die anderen Bilder hat.

Ich habe versucht, Befehle wie:

convert -resize

und:

convert -crop

Ich kann jedoch nicht den richtigen Befehl finden, um alle Bilder mit einer Breite von 1024 und einem Seitenverhältnis von 6 x 4 zu versehen, ohne dass sich das Bild dehnt oder gequetscht wird.

oshirowanen
quelle
Wenn Sie das Seitenverhältnis eines Bildes ändern möchten, können Sie es entweder strecken / quetschen, in einen Briefkasten legen oder zuschneiden. Welches suchst du?
cjm
Ich würde es gerne beschneiden.
oshirowanen
Cross-posted bei Unix Stack Exchange . (Tu das nicht!)
Gilles 'SO - hör auf böse zu sein'

Antworten:

4

Beachten Sie, dass 1024 nicht durch 3 teilbar ist, sodass Sie kein genaues Seitenverhältnis von 6 x 4 erhalten können. Ich nähere mich 1024x682.

Der gewünschte Befehl ist

convert in.jpg -resize '1024x682^' -gravity Center -crop 1024x682+0+0 out.jpg

-resize '1024x682^' skaliert das Bild unter Beibehaltung des Seitenverhältnisses, sodass entweder:

  • Breite = 1024 und Höhe> = 682 oder
  • Höhe = 682 und Breite> = 1024

Nur eines dieser Kriterien kann erfüllt werden, ohne das Seitenverhältnis zu ändern (es sei denn, das Bild war bereits 6x4).

-gravity Center -crop 1024x682+0+0schneidet einen Bereich von 1024 x 682, der in der Bildmitte zentriert ist. -gravityJe nachdem, wie Ihre Bilder zugeschnitten werden sollen, können Sie eine andere verwenden .

Sie können auch eine -filterOption zur Steuerung des Algorithmus zum Ändern der Bildgröße einfügen.

cjm
quelle
Diese Antwort ist richtig, wenn Sie den Bereich ausschneiden möchten, der außerhalb des Seitenverhältnisses liegt - OP implizierte, dass dies die Anforderung war, sagte dies jedoch nicht. Wenn Sie lieber Größe das gesamte Bild in den gegebenen Raum und verwenden Sie eine Hintergrundfüllung für die nicht übereinstimmen Bereiche, ändern 1024x682^zu 1024x682und ersetzen -crop 1024x682+0+0mit -extent 1024x682 -background 'COLOR'mit dem gewählten Farbe.
Chris Johnson
@ChrisJohnson, in einem Kommentar zu der Frage sagte das OP, dass er eher beschneiden als Briefkasten (was Sie beschreiben).
cjm
0

Ich denke, Sie verwenden Imagemagick. Das Problem hängt mit keiner Software zusammen. Sie müssen lediglich die Größe jedes Fotoverhältnisses ändern und dann das andere Verhältnis zuschneiden (Sie müssen dann einen Teil des Bilds verlieren und hinein) In anderen Fällen fügen Sie einen Block am unteren Rand von festem Schwarz usw. hinzu. Ich neige dazu, dies mit bestimmter Freeware zu tun, Irfanview . Mit der Stapeloption (öffnen Sie einfach ein Bild im Ordner mit irfanview und drücken Sie die Taste b) habe ich die erweiterten Optionen wie aktiviert festgelegt und die dortigen Optionen zum Ändern der Größe und zum Zuschneiden verwendet. Dies bietet recht Flexibilität.

Nichts, was Sie mit Imagemagick nicht tun könnten. Sicherlich lassen Sie es sich dehnen, aber Sie könnten möglicherweise die Ernte erzwingen, ohne das Verhältnis zu ändern ...

Eine andere Möglichkeit ist die Verwendung des Photoshop-Automatisierungsmenüs in Kombination mit einer zuvor von Ihnen ausgeführten Aktion (Makro).

S.gfx
quelle
0

Originalbild: 798x591

Zielbild:

$ convert /var/tmp/eid0.png -crop 798x450-10+50 /var/tmp/eid.png

798 = width  (keep original)
450 = height (customize original to total height)

-10 = x horizontally
+50 = y vertically

es funktioniert gut.

Yum Yum yum
quelle