imagemagic: как разделить изображение по вертикали на основе соотношения сторон, а также с вертикальным перекрытием - PullRequest
0 голосов
/ 15 октября 2019

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

В настоящее время работает

convert -crop 2:1 input.png cropped_%d.png

Приведенная выше команда разделяет изображение. Предполагая, что у меня есть 900px x 2000px, он создает 5 изображений.

Но теперь проблема заключается в том, что я хочу сохранить некоторое перекрытие

Я пытался

convert -crop 2:1+0+40 input.png cropped_%d.png

Это дает только одноimage.

Я пытался

convert -crop 1x4+0+40@ Settings_commit1.png cropped_%d.png

Это хорошо работает. Но здесь я должен упомянуть 1x4 (сетка). Но я хочу сделать это по соотношению сторон

1 Ответ

0 голосов
/ 16 октября 2019

Я сделал следующим образом

$ convert --version
Version: ImageMagick 7.0.8-35 Q16 x86_64 2019-03-25 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenCL OpenMP 
Delegates (built-in): bzlib cairo fontconfig freetype gslib heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps raw rsvg tiff webp wmf x xml zlib

Две команды разделяют изображение:

На основании пропорций разделяют файл изображения (но перекрытие не работает 2: 1 + 0 +40)

convert -crop 2:1 input.png cropped_%d.png

На основе сетки разделить файл изображения и работает перекрытие (+ 0 + 40)

convert -crop 1x4+0+40@ Settings_commit1.png cropped_%d.png  (with 40px vertical overlap)

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

Это скрипт, который работал

filename="someimage.png";
# just creating a dir and empty it 
mkdir ~/croped
rm -rf ~/croped/*
# split the image base on aspect ratio and save them in croped folder
convert -crop 903:600 ${filename} ~/croped/crop_aspect_%d.png;
# count the number of files in the croped folder
number_files=`ls -l ~/croped | grep -E "crop_aspect_*" | wc -l`
# based on this number apply the grid
convert -crop 1x${number_files}+0+8@ ${filename} ~/croped/crop_grid_%d.png
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...