Ich habe mehrere Möglichkeiten gefunden, um die Auflösung eines Bildes zu ändern convert
:
-sample
-resample
-scale
-resize
-adaptive-resize
-thumbnail
Was ist der Unterschied von denen?
Wenn ich ein Miniaturbild in verschiedenen Größen für große Bilder mit festem Seitenverhältnis erstellen muss (Zuschneiden erforderlich) - was ist meine beste Wahl?
imagemagick
thumbnails
Europäische Sommerzeit
quelle
quelle
Antworten:
Größe ändern
-resize
unterstützt eine zusätzliche Einstellung von-filter
(die vor der Verwendung in der Befehlszeile erfolgen sollte-resize
!).-filter
bestimmt den genauen Algorithmus, der für die Farben der hinzugefügten Pixel bei Vergrößerung oder für die Farben für die verbleibenden Pixel verwendet werden soll, wenn einige ihrer Nachbarn bei Verkleinerung entfernt werden.Eine Liste der unterstützten Filter finden Sie einfach
convert -list filter
.-filter point -resize 400x300
erzeugt genau das gleiche Ergebnis wie-sample 400x300
es, läuft aber immer noch etwas langsamer.Wenn dies nicht neben (vorher) festgelegt wird
-resize
, wird die Konvertierung standardmäßig-filter Lanczos
langsamer eingestellt, erzeugt jedoch eine viel bessere Qualität (da die Farben aller umgebenden Pixel für neu hinzugefügte Pixel berücksichtigt werden) als die Erzeugung-filter point
(bei der die nächste verwendet wird) Nachbarregel zur Bestimmung der Farbe neu hinzugefügter Pixel).Stichprobe
-sample
unterstützt nicht die zusätzliche Einstellung von-filter
; Wenn es trotzdem eingestellt ist,-filter
wird es einfach ignoriert.Beim Vergrößern (da die Eingabebildgröße möglicherweise kleiner als ist
400x300
) werden Pixel in Blöcken repliziert.Beim Minimieren (da die Eingabebildgröße möglicherweise größer als ist
400x300
) werden Pixel mit einem sehr einfachen Algorithmus unterabgetastet: Einige Zeilen und Spalten werden einfach übersprungen.Das Geometrie Argument
-sample
unterstützt keinen Offset - Teil ( im Gegensatz zu-resize
, die Hinsicht Offset - Richtlinien für die Ausgabe).Die Ausgabe wird niemals mehr (unterschiedliche) Farben haben als das Eingabebild; Es kann jedoch weniger Farben haben.
Daher
-sample
ist es sehr schnell (schneller als-resize
) - aber die Ausgabequalität ist (normalerweise) schlechter: Sie können leicht extreme Blockierungs- und Aliasing- Effekte in der resultierenden Ausgabe erzielen.Ein wichtiges Merkmal von
-sample
ist, dass das neue Bild keine neuen Farben enthält, obwohl einige Farben aus dem Originalbild möglicherweise verschwinden.Resample
Dieser Vorgang funktioniert nur für solche Bilder, deren Metadaten bereits eine gewünschte Auflösung gespeichert haben (nicht alle Bildformate unterstützen das Konzept einer Bildauflösung - JPEG, PNG und TIFF).
Wenn das Quellbild in einem Format vorliegt, in dem die interne Unterstützung für eine Bildauflösung fehlt, muss die (angenommene) ursprüngliche Auflösung des Bildes vor der Angabe der Auflösung über
-density
die Befehlszeile angegeben werden .-resample
Rahmen
Beim Minimieren wird die Bildgröße geändert, indem einfach die Pixelfarben ersetzt werden, indem die jeweiligen eingegebenen Pixelfarben zusammen gemittelt werden.
Beim Vergrößern werden einfach die jeweiligen Eingabepixel für die erforderlichen zusätzlichen Pixel repliziert.
adaptive Größenänderung
-filter [something]
).Miniaturansicht
Es ist auf Geschwindigkeit optimiert.
Außerdem werden eingebettete Farbprofile entfernt, um die Dateigröße der Miniaturansichten zu verringern.
Die folgende Antwort zeigt einige (illustrierte!) Beispiele der
-resize
Richtlinie. Jede Abbildung zeigt ein anderes Ergebnis, abhängig von den "feinen Details" der genauen Größenänderungsmethode:quelle
Wie von Ciro Santilli 新疆 改造 中心 六四 六四 法轮功 gesagt:
-Größengröße
(8,0 kB)
-Stichprobe
(2,2 kB)
-Rahmen
(7,0 kB)
-adaptive-resize
(4,3 kB)
quelle