I have vertical (i.e. height > width) and horizontal (i.e. width > height) images. I want to resize them to either 900-pixels-height vertical ones or 900-pixels-width ones based on their original ratio.

I am using Ubuntu 20.04 in Gnome environment. I think that mogrify of imagemagick will solve this problem, a pseudo code would be like...

for i in *.jpg; do
  _w = identify -format %w
  _h = identify -format %h
  if [_w >= _h]; then
    mogrify -resize 900x675 i
    mogrify -resize 675x900 i

but couldn't find the way.

  • Btw: You should use shellcheck.net before posting to find and fix syntax errors which you have lots of.
    – pLumo
    Feb 28, 2021 at 17:58
  • Thank you for pointing-out. That's just a pseudo code to show my purpose. I edited my post to specify this.
    – hlee
    Feb 28, 2021 at 18:52

1 Answer 1


This should be enough:

mogrify -resize 900x900\> *.jpg

From https://legacy.imagemagick.org/Usage/resize/#noaspect

Aspect ratio is preserved basically so that any circles in the input image will remain a circle in the output image. That is the image will not be squashed or squeezed, only resized, unless you tell it otherwise.


Only Shrink Larger Images ('>' flag) Another commonly used option is to restrict IM so that it will only shrink images to fit into the size given. Never enlarge.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .