Изменение размера и обрезка изображений до 6x4 до ширины 1024

7878
oshirowanen

У меня есть смешанный набор изображений, каждое из которых имеет немного отличающееся разрешение с немного отличающимся соотношением сторон от других изображений.

Я пытался использовать такие команды, как:

convert -resize 

а также:

convert -crop 

Однако я не могу понять правильную команду, чтобы все изображения имели ширину 1024 и соотношение сторон 6x4, не вызывая растяжение или сжатие изображения.

7
Если вы хотите изменить соотношение сторон изображения, вы можете растянуть / раздавить его, пометить прямоугольником или обрезать. Что вы ищете? cjm 13 лет назад 0
Я хотел бы обрезать это. oshirowanen 13 лет назад 0
Перекрестная публикация на [Unix Stack Exchange] (http://unix.stackexchange.com/q/11974/885). (Не делай этого!) Gilles 13 лет назад 0

3 ответа на вопрос

4
cjm

Обратите внимание, что 1024 не делится на 3, поэтому вы не можете получить точное соотношение сторон 6x4. Я приближаю это к 1024x682.

Команда, которую вы хотите

convert in.jpg -resize '1024x682^' -gravity Center -crop 1024x682+0+0 out.jpg 

-resize '1024x682^' масштабирует изображение, сохраняя соотношение сторон, чтобы либо:

  • ширина = 1024 и высота> = 682, или
  • высота = 682 и ширина> = 1024

Только один из этих критериев может быть выполнен без изменения соотношения сторон (если изображение не было уже 6x4).

-gravity Center -crop 1024x682+0+0вырезает область 1024x682 с центром в центре изображения. Вы можете использовать другое в -gravityзависимости от того, как вы хотите обрезать ваши изображения.

Вы также можете включить -filterопцию для управления алгоритмом, используемым для изменения размера изображения.

Этот ответ верен, если вы хотите обрезать область, выходящую за пределы соотношения сторон - OP подразумевал, что это было требованием, но на самом деле это не так. Если вы хотите увеличить размер всего изображения в данном пространстве и использовать фоновую заливку для несовпадающих областей, замените `1024x682 ^` на `1024x682` и замените` -crop 1024x682 + 0 + 0` на `-extent 1024x682 -background 'ЦВЕТ' с выбранным вами цветом. Chris Johnson 9 лет назад 0
@ChrisJohnson, в комментарии к этому вопросу, OP действительно сказал, что он хотел обрезать, а не почтовый ящик (что вы и описываете). cjm 9 лет назад 0
0
S.gfx

Я предполагаю, что вы используете Imagemagick. Проблема не связана с каким-либо программным обеспечением, просто вам нужно будет изменить размер, сохраняя каждый коэффициент фото, а затем обрезать другой коэффициент (вам нужно потерять часть изображения, затем и в в других случаях добавьте кусок в нижней части сплошного черного цвета и т. д.). Я склонен делать это с некоторыми бесплатными, Irfanview . Используя опцию Пакетная обработка (просто откройте одно изображение в папке с помощью irfanview и нажмите клавишу b), я бы установил расширенные опции как отмеченные, а затем использовал там опции для изменения размера и обрезки, это обеспечивает большую гибкость.

Ничего, что вы не могли бы сделать с Imagemagick, тем не менее, конечно, вы позволяете ему растягиваться, но вы могли бы форсировать урожай без изменения соотношения ...

Другой способ - использовать меню автоматизации Photoshop в сочетании с ранее выполненным вами действием (макросом).

0
YumYumYum

Original image: 798x591

Target image:

$ convert /var/tmp/eid0.png -crop 798x450-10+50 /var/tmp/eid.png 798 = width (keep original) 450 = height (customize original to total height) -10 = x horizontally +50 = y vertically 

it works nicely.

Похожие вопросы