Какая разница для образца/разрешение/масштабирование/изменение размера/адаптивно-размер/эскиз операторов в ImageMagick конвертируют?
Я нашел несколько способов изменить разрешение изображения с помощью convert:
-sample
-resample
-scale
-resize
-adaptive-resize
-thumbnail
в чем разница между ними?
Если мне нужно сделать миниатюру большого изображения различного размера с фиксированным соотношением сторон (требуется обрезка) - каков мой лучший выбор?
1 ответ:
изменение размера
-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), пиксели суб-выборки с очень простым алгоритмом: некоторые строки и столбцы просто пропускаются.The геометрия до
-sampleне поддерживает смещение часть (в отличие от-resize, который уважает смещение директивы для вывода).выход никогда не будет иметь больше (разных) цветов, чем входное изображение; он может иметь меньше цветов, хотя.
-sampleочень быстро (быстрее, чем-resize) -- но качество вывода (обычно) хуже: вы можете легко получить экстремальные блокировка и псевдоним эффекты в результате.один важная особенность
-sampleзаключается в том, что новый образ не будет содержать никаких новых оттенков, хотя некоторые цвета из исходного изображения могут исчезнуть.resample
-resampleиспользует в качестве параметра нужныйXxYразрешение, неXxYпикселей геометрия целевого изображения. Целью данного оператора является сохранение элемент rendered размер изображения: предположим, что ваше изображение измеряет 4 дюйма на 3 дюйма на устройстве, которое отображает его на 300 точек на дюйм. Тогда прошу-resample 72или-resample 72x72изменит размер изображения так, что он измеряет (снова) 4 дюйма на 3 дюйма на устройстве 72 DPI.
эта операция работает только для таких изображений, которые уже имеют желаемое разрешение, сохраненное в их метаданных (не все форматы изображений поддерживают концепцию разрешения изображения -- JPEG, PNG и TIFF do).
если исходное изображение находится в формате, где отсутствует внутренняя поддержка разрешения изображения, то (предполагаемое) исходное разрешение изображения должно быть указано через
-densityв командной строке до указания .масштаб
-scale 400x300дает эквивалентный результат (но быстрее, потому что он избегает всей обработки фильтра), как и с помощью-filter box -resize 400x300. Он также полностью игнорирует любой ток-filterнастройка.
при уменьшении он изменяет размер изображения просто путем замены цветов пикселей путем усреднения соответствующих входных цветов пикселей вместе.
при увеличении он просто копирует соответствующие входные пиксели для необходимых дополнительных пикселы.
adaptive-resize
-adaptive-resize 400x300не поддерживает (или игнорирует, если установлено)смещение часть a геометрия