Este comando irá pegar qualquer arquivo de entrada de tamanho e encaixar melhor em um quadrado de 40x40 e passar com transparência:
convert \
original.png \
-thumbnail '40x40>' \
-background transparent \
-gravity center \
-extent 40x40 \
-compose Copy_Opacity \
-composite mask.png \
original-resized.png
A opção gravity
garante que a imagem esteja centralizada nas duas direções e transparent
seja usado onde quer que não haja pixels. Então a composição é feita com o mask.png