змінити розмір
-resize 400x300+20+30
(як -scale
і -sample
приклади нижче) перетворює вхід у вихідне зображення, яке має розміри пікселів 400x300
. Він також зміщує вихід на 20 пікселів праворуч і на 30 пікселів унизу. Крім того, є ще кілька відмінностей між -scale
:
-resize
підтримує додаткове налаштування -filter
(яке має відбуватися в командному рядку перед використанням -resize
!).
-filter
визначає точний алгоритм, який використовуватиметься для кольорів доданих пікселів у разі збільшення, або для кольорів, що використовуються для решти пікселів, коли деякі їх сусіди видаляються у разі зменшення.
Щоб отримати список підтримуваних фільтрів, просто запустіть convert -list filter
.
-filter point -resize 400x300
створює точно такий же результат, як і -sample 400x300
зараз, але працює все одно трохи повільніше.
Якщо не встановити поряд (раніше) -resize
, перетворення буде тихо за замовчуванням -filter Lanczos
повільніше, але яке створює набагато кращу якість (оскільки враховує кольори всіх оточуючих пікселів для будь-яких нещодавно доданих), ніж -filter point
виробляє (яке використовує найближчий правило сусіда для визначення кольору щойно доданих пікселів).
зразок
-sample 400x300
перетворює вхідне зображення у вихідне зображення, яке має розмір пікселів 400x300
. Однак є кілька дуже важливих відмінностей між -resize
:
-sample
не підтримує додаткове налаштування -filter
; якщо встановлено в будь-якому випадку, то -filter
просто ігнорується.
Під час збільшення (оскільки розмір вхідного зображення може бути меншим ніж 400x300
) пікселі копіюються в блоки.
При мініфікації (оскільки розмір вхідного зображення може бути більшим ніж 400x300
) пікселі вибірковуються за допомогою дуже простого алгоритму: деякі рядки та стовпці просто пропускаються.
Аргумент геометрії для -sample
не підтримує жодної частини зміщення (на відміну від -resize
, яка поважає директиви зміщення для виводу).
На виході ніколи не буде більше (різних) кольорів, ніж було на вхідному зображенні; він може мати менше кольорів.
Тому -sample
це дуже швидко (швидше, ніж -resize
), але якість виводу гірше (як правило) гірша: ви можете легко отримати надзвичайні ефекти блокування та псевдонімування результату.
Важливою особливістю -sample
є те, що нове зображення не буде містити нових кольорів, хоча деякі кольори з вихідного зображення можуть зникнути.
перепробовувати
-resample
використовує в якості параметра бажану XxY
роздільну здатність , а не геометріюXxY
пікселів цільового зображення. Метою цього оператора є збереження винесене розмір зображення: Припустимо , що ваші заходи зображення 4 дюйма на 3 дюйми на пристрої , яке робить його на 300 DPI. Потім попросіть або змінити розмір зображення так, щоб воно (знову) становило 4 дюйма на 3 дюйма на пристрої 72 DPI.-resample 72
-resample 72x72
Ця операція працює лише для таких зображень, які вже мають бажану роздільну здатність, збережену у своїх метаданих (не всі формати зображень підтримують концепцію роздільної здатності зображень - JPEG, PNG та TIFF).
Якщо вихідне зображення має формат, у якому відсутня внутрішня підтримка роздільної здатності зображення, то (передбачувана) вихідна роздільна здатність зображення повинна бути вказана через -density
командний рядок перед вказівкою -resample
роздільної здатності.
масштаб
-scale 400x300
видає еквівалентний результат (але швидший, оскільки дозволяє уникнути всієї обробки фільтрів), як і використання -filter box -resize 400x300
. Він також повністю ігнорує будь-які поточні -filter
налаштування.
Під час мініфікації він змінює розмір зображення, просто замінюючи кольори пікселів, усереднюючи відповідні вхідні кольори пікселів разом.
При збільшенні він просто копіює відповідні вхідні пікселі для необхідних додаткових пікселів.
адаптивний розмір
-adaptive-resize 400x300
не підтримує (або ігнорує, якщо встановлено) зміщену частину параметра геометрії, а також ігнорує -gravity
параметр, якщо він присутній.
- Він використовує за замовчуванням залежну від даних триангуляцію при зміні розміру (якщо метод зміни розміру не замінено додатковим вказівкою
-filter [something]
).
ескіз
-thumbnail
працює так само, як -resize
і з деякими відмінностями:
Він оптимізований для швидкості.
Він також видаляє будь-які вбудовані кольорові профілі, щоб зменшити розмір файлів мініатюр.
Наступна відповідь показує кілька (проілюстрованих!) Прикладів -resize
директиви. Кожна ілюстрація показує різний результат, залежно від `` тонких деталей '' методу точного зміни розміру: