Zmień rozmiar
-resize 400x300+20+30
(jak w przykładach -scale
i -sample
poniżej) konwertuje dane wejściowe na obraz wyjściowy, który ma wymiary w pikselach 400x300
. Przesuwa również wynik o 20 pikseli w prawo i 30 pikseli w dół. Ponadto istnieje kilka dodatkowych różnic w -scale
:
-resize
obsługuje dodatkowe ustawienie -filter
(które powinno wystąpić w wierszu poleceń przed użyciem -resize
!).
-filter
określa dokładny algorytm, który ma być użyty dla kolorów dodanych pikseli w przypadku powiększenia lub dla kolorów, które zostaną użyte dla pozostałych pikseli, gdy część ich sąsiadów zostanie usunięta w przypadku minifikacji.
Aby wyświetlić listę obsługiwanych filtrów, po prostu uruchom convert -list filter
.
-filter point -resize 400x300
tworzy dokładnie taki sam wynik jak -sample 400x300
robi, ale nadal działa trochę wolniej.
Jeśli nie zostanie ustawiona obok (przed) -resize
, konwersja będzie cicho domyślna, -filter Lanczos
która jest wolniejsza, ale generuje znacznie lepszą jakość (ponieważ bierze pod uwagę kolory wszystkich otaczających pikseli dla każdego nowo dodanego) niż -filter point
produkuje (która używa najbliższej reguła sąsiada określająca kolor nowo dodanych pikseli).
próba
-sample 400x300
konwertuje obraz wejściowy na obrazy wyjściowe o wymiarach w pikselach 400x300
. Jest jednak kilka bardzo ważnych różnic w -resize
:
-sample
nie obsługuje dodatkowego ustawienia -filter
; jeśli mimo to -filter
jest ustawione, jest po prostu ignorowane.
Podczas powiększania (ponieważ rozmiar obrazu wejściowego może być mniejszy niż 400x300
), piksele są replikowane w blokach.
Podczas kompresji (ponieważ rozmiar obrazu wejściowego może być większy niż 400x300
) piksele są poddawane próbkowaniu za pomocą bardzo prostego algorytmu: niektóre wiersze i kolumny są po prostu pomijane.
Geometria argument -sample
nie obsługuje żadnej przesunięcie części (w przeciwieństwie -resize
, który szanuje przesunięcie wskazówki na wyjściu).
Wynik nigdy nie będzie miał więcej (różnych) kolorów niż miał obraz wejściowy; może mieć jednak mniej kolorów.
Dlatego -sample
jest bardzo szybki (szybszy niż -resize
) - ale jakość wyjściowa jest (zwykle) gorsza: można łatwo uzyskać ekstremalne efekty blokowania i aliasingu w wynikowym wyniku.
Jedną z ważnych cech programu -sample
jest to, że nowy obraz nie będzie zawierał żadnych nowych kolorów, chociaż niektóre kolory z oryginalnego obrazu mogą zniknąć.
ponowne próbkowanie
-resample
używa jako parametru pożądanej XxY
rozdzielczości , a nie geometriiXxY
pikseli obrazu docelowego. Celem tego operatora jest zachowanie renderowanego rozmiaru obrazu: Załóżmy, że obraz ma wymiary 4 cale na 3 cale na urządzeniu, które renderuje go w rozdzielczości 300 DPI. Następnie prosi o lub zmieni rozmiar obrazu, tak aby mierzył (ponownie) 4 cale na 3 cale na urządzeniu 72 DPI.-resample 72
-resample 72x72
Ta operacja działa tylko dla takich obrazów, które mają już żądaną rozdzielczość zapisaną w swoich metadanych (nie wszystkie formaty obrazów obsługują koncepcję rozdzielczości obrazu - JPEG, PNG i TIFF).
Jeśli obraz źródłowy jest w formacie, w którym brakuje wewnętrznej obsługi rozdzielczości obrazu, to (zakładaną) oryginalną rozdzielczość obrazu należy określić -density
w wierszu poleceń przed określeniem -resample
rozdzielczości.
skala
-scale 400x300
daje równoważny wynik (ale jest szybszy, ponieważ pozwala uniknąć przetwarzania wszystkich filtrów), podobnie jak using -filter box -resize 400x300
. Całkowicie ignoruje również wszelkie bieżące -filter
ustawienia.
Podczas zmniejszania zmienia rozmiar obrazu, po prostu zastępując kolory pikseli, uśredniając razem odpowiednie wejściowe kolory pikseli.
Podczas powiększania po prostu replikuje odpowiednie piksele wejściowe dla wymaganych dodatkowych pikseli.
adaptacyjna zmiana rozmiaru
-adaptive-resize 400x300
nie obsługuje (lub ignoruje, jeśli jest ustawiona) odsuniętej części parametru geometrii , a także ignoruje -gravity
ustawienie, jeśli jest obecne.
- Domyślnie używa triangulacji zależnej od danych podczas zmiany rozmiaru (chyba że metoda zmiany rozmiaru zostanie zastąpiona przez dodatkowe określenie
-filter [something]
).
Miniaturka
-thumbnail
działa tak samo, jak -resize
działa, z kilkoma różnicami:
Jest zoptymalizowany pod kątem szybkości.
Usuwa również wszelkie osadzone profile kolorów, aby zmniejszyć rozmiar plików miniatur.
Poniższa odpowiedź przedstawia kilka (zilustrowanych!) Przykładów -resize
dyrektywy. Każda ilustracja przedstawia inny wynik, w zależności od „drobnych szczegółów” dokładnej metody zmiany rozmiaru: