Wie kann ich unter Linux Batch-Downsize-Bilder erstellen und dabei kleine Bilder klein halten?

476
Gabriel

Ich habe eine Menge Fotos und es ist Zeit, das Chaos zu säubern und Speicherplatz freizugeben. Ich weiß, dass Mogrify großartig ist, wenn es darum geht, die Größe zu reduzieren. Das Problem ist, in einigen Verzeichnissen habe ich kleine Bilder mit den großen gemischt. Ich würde gerne alle großen abschneiden, nicht aber die kleinen.

Als Beispiel habe ich einen Repräsentanten mit Dutzenden von MBs-Bildern in den 3000x2000s. Einige davon habe ich bereits verkleinert, damit ich sie per E-Mail kontaktieren konnte. Sie können 1024x768 sein. Ich möchte die Großen auf 1600x1200 verkleinern, ein Kompromiss zwischen Speicherplatz und Qualität, den ich mag. Mit mogrifyoder convertwerden die kleinen jedoch vergrößert, was Festplattenspeicherplatz verschwenden würde.

Ich fand einige knifflige Wege zu verwenden identifymit cutund einige scripting die kleinen Bilder, um herauszufiltern und mogrify die anderen, aber der Mensch, es hat einen Weg, um mogrify zu sagen, nicht meine Bilder Upsizing ... Wie?

Gibt es ein anderes Werkzeug, das besser geeignet ist?

7

1 Antwort auf die Frage

8
ThoriumBR

Wenn Sie verwenden convert, können Sie den Parameter >so einstellen, dass nur größere Bilder verkleinert werden und das andere nicht berührt wird (das \ ist erforderlich oder das Zauberzeichen ist nicht geschützt):

convert large_image.png -resize 1248x1024\> large_image.png convert not_large_image.png -resize 1248x1024\> not_large_image.png 

Es werden nur die größeren Bilder geändert.

[ETA] convertist Teil von ImageMagick .

Funktioniert auch mit "mogrify"! Gabriel vor 9 Jahren 0