Verkleinern und Beschneiden von Bildern auf 6x4 auf 1024 Breite

8038
oshirowanen

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

Ich habe versucht, folgende Befehle zu verwenden:

convert -resize 

und:

convert -crop 

Ich scheine jedoch nicht den richtigen Befehl zu finden, damit alle Bilder eine Breite von 1024 und ein Seitenverhältnis von 6x4 haben, ohne dass das Bild gedehnt oder gestaucht wird.

7
Wenn Sie das Seitenverhältnis eines Bildes ändern möchten, können Sie es entweder strecken / zerquetschen, mit einem Briefkasten versehen oder beschneiden. Nach was suchst du? cjm vor 13 Jahren 0
Ich würde es gerne beschneiden. oshirowanen vor 13 Jahren 0
Cross-posted bei [Unix Stack Exchange] (http://unix.stackexchange.com/q/11974/885). (Tu das nicht!) Gilles vor 13 Jahren 0

3 Antworten auf die Frage

4
cjm

Beachten Sie, dass 1024 nicht durch 3 teilbar ist. Daher erhalten Sie kein genaues Seitenverhältnis von 6x4. Ich schätze es auf 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:

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

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

-gravity Center -crop 1024x682+0+0schneidet einen Bereich von 1024x682 um die Bildmitte. -gravityJe nachdem, wie Ihre Bilder zugeschnitten werden sollen, können Sie ein anderes verwenden .

Sie können auch eine -filterOption zur Steuerung des zur Größenänderung des Bildes verwendeten Algorithmus hinzufügen.

Diese Antwort ist richtig, wenn Sie den Bereich herausschneiden möchten, der außerhalb des Seitenverhältnisses liegt. OP deutete darauf hin, dass dies die Anforderung war, dies aber nicht wirklich sagte. Wenn Sie lieber das gesamte Bild in den angegebenen Bereich einpassen und eine Hintergrundfüllung für die nicht übereinstimmenden Bereiche verwenden möchten, ändern Sie "1024x682 ^" in "1024x682" und ersetzen Sie "-crop 1024x682 + 0 + 0" durch "-extent 1024x682 -background" "FARBE" mit Ihrer gewählten Farbe. Chris Johnson vor 9 Jahren 0
@ ChrisJohnson, in einem Kommentar zu der Frage hat das OP gesagt, dass er statt Briefkasten beschneiden wollte (was Sie beschreiben). cjm vor 9 Jahren 0
0
S.gfx

Ich schätze, Sie verwenden Imagemagick. Das Problem hat nichts mit Software zu tun. Sie müssen lediglich die Größe der Fotos ändern und dann den Zuschnitt mit dem anderen Verhältnis (Sie müssen einen Teil des Bildes verlieren, dann und.) Fügen Sie in anderen Fällen ein Stück unten in Schwarz hinzu, usw.). Ich neige dazu, dies mit bestimmter Freeware, Irfanview, zu tun . Wenn Sie die Stapeloption verwenden (öffnen Sie einfach ein Bild im Ordner mit irfanview und drücken Sie die Taste b), würde ich erweiterte Optionen als aktiviert markieren. Dann können Sie die Optionen dort zum Ändern der Größe und zum Zuschneiden verwenden.

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

Eine andere Möglichkeit ist das Photoshop-Automatisierungsmenü, das mit einer zuvor von Ihnen ausgeführten Aktion (Makro) kombiniert wird.

0
YumYumYum

Ursprüngliches Bild: 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.