Вы можете получить D
как меньшее из ширины и высоты, например:
D=$(convert input.jpg -format "%[fx:w<h?w:h]" info:)
, а затем обрезать квадрат такого размера от центра следующим образом:
convert input.jpg -gravity center -extent "${D}x${D}" result.jpg
Итак, если вы начнете с этого изображения 800x400:
![enter image description here](https://i.stack.imgur.com/V8y5T.jpg)
Вы получите это изображение 400x400:
![enter image description here](https://i.stack.imgur.com/sqGuS.jpg)