Квадратные миниатюры с ImageMagick (конвертировать)?

Как создать квадратную / обрезанную миниатюру с помощью ImageMagick ? Обрезка, как показано ниже.

cropping

19
задан marioosh
01.01.2023 15:56 Количество просмотров материала 2501
Распечатать страницу

6 ответов

Это объясняется в официальной документации ImageMagick под, "вырезать миниатюру по размеру":

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

конечно, это означает, что вы действительно потеряете некоторые части оригинала изображение, особенно края изображения, но в результате получается увеличенная миниатюра центральная часть изображения. Это обычно (но не всегда) основной предмет изображения, поэтому он практичный способ создания миниатюр.

от IM v6.3.8-3 специальный флаг опции изменения размера ' ^ ' был добавлен, чтобы сделать это проще. Мы просто изменить размер с помощью этого флага, то обрезать части изображение, которое переполняет нужный размер.

и в контексте примера команды:

convert -define jpeg:size=200x200 hatching_orig.jpg  -thumbnail 100x100^ \
          -gravity center -extent 100x100  cut_to_fit.gif
15
отвечен Ignacio Vazquez-Abrams 2023-01-02 23:44

Игнасио связан с правильной документацией, однако я вставлю его здесь для удобства:

convert -define jpeg:size=200x200 original.jpeg  -thumbnail 100x100^ -gravity center -extent 100x100  thumbnail.jpeg

аналогично, следующее Для GraphicsMagick:

gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg

объяснение:

  • -size 200x200 говорит дешифратору jpeg нам только нужно это разрешение поэтому оно может сохранить память и прочитать изображение источника более быстро
  • -thumbnail 100x100^ быстрое изменение размера делает самую короткую сторону 100
  • - gravity center центр рядом операция
  • -extent 100x100 применить изображение к холсту 100x100
  • +profile "*" не сохранять metainfo в jpeg (делая результирующее изображение меньше)
46
отвечен Jonah Braun 2023-01-03 02:01

это более простой способ сделать это:

следующая команда изменяет размер меньшей стороны до 100 пикселей и обрезает квадрат 100x100. Вы можете добавить -strip команда для уменьшения размера файла.

convert original.jpg -resize "100^>" -gravity center \ 
                     -crop 100x100+0+0 -strip thumbnail.jpg

в отличие от других, она не пытается сохранить память. Вместо этого он делает то, что вы хотите, и не более. Кроме того, это не будет высококлассные изображения.

9
отвечен Reinaldo Guedes 2023-01-03 04:18

Я использую graphicsmagick для создания миниатюр точного размера, но я дополняю изображение шахматной доской вместо обрезки свеса.

gm convert -limit Threads 1 -size 320x180 pattern:checkerboard -background transparent -gravity center -resize 320x180 -extent 320x180 original.jpg -flatten -resize 112x65! -interlace Line 1 thumb_112x65.jpg

опции пояснил.

gm convert

// Single threaded seems faster on smaller files
-limit Threads 1 

// Generate a checkerboard of size 320x180.
// Sets the relative size of the checkerboard squares,
// also sets the desired aspect ratio. In my case (16:9)
-size 320x180 pattern:checkerboard 

// Resize the input image and center it on a transparent layer.
-background transparent -gravity center -resize 320x180 -extent 320x180 orig.jpg

// Merge the layers
-flatten 

// Resize the output to the desired
// The ! causes the aspect ratio to be ignored, fixing any rounding errors.
// (Specify a size with the same aspect ratio as the checkerboard.)
-resize 112x65! 

// Use Progressive JPEG Encoding
-interlace Line 

// Output Image
thumb_112x65.jpg
2
отвечен Ryan Williams 2023-01-03 06:35

Я думаю, вы ищете что-то вроде:

convert -crop 100x100+50+50 input_image.jpg output_image.jpg 

здесь 100x100 это в размере конечного прямоугольника и 50x50offset.

1
отвечен pconcepcion 2023-01-03 08:52

эта команда обрезает квадрат, а затем изменяет размер до 150x150

convert 824-full.jpg -set option:size '%[fx:min(w,h)]x%[fx:min(w,h)]' xc:none +swap -gravity center -composite -resize 150x150  temp.jpg

больше вариантов доступны здесь: http://www.imagemagick.org/Usage/thumbnails/#square

1
отвечен michaelbn 2023-01-03 11:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх